묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
아래 코드가 IE8에선 동작하는데 크롬/파폭/IE11 에선 오동작을 하네요. 무엇이 문제일까요? ㅡ_ㅡ;
2016.02.25 10:00
이 폼 수정 페이지에서 시험 등급을 "보험심사분석사" 로 선택하면 두번째 소스의 자바스크립트가 실행되면서 현재 수정하기 페이지의 1개 금액 필드가 1급/2급의 2개 금액 필드로 바뀌고 그걸 form 값으로 전달해 서버에 저장하는 소스인데 분명 DB엔 2개 금액 필드가 다 생성돼 있는데 이상하게 이게 IE8에선 정상동작하지만 크롬/파폭/IE11에선 수정하기 페이지 로드 후 다른 시험등급을 선택해 금액을 적어 폼을 날리면 이상하게 금액값이 1개 필드일 때나 2개 필드일 때 모두 0으로 저장이 돼 버린다는 겁니다. 그래서 다시 수정폼을 불러와 보면 0이 저장돼 있고 그걸 다른 시험등급을 선택하지 않은 채로 금액을 넣어 저장하면 저장이 되지만 다시 불러와서 다른 시험등급을 선택해 금액을 다시 넣어 저장하면 똑같이 다시 0으로 저장이 돼 버린다는 겁니다. 무엇이 문제인지 정말 모르겠네요. ㅡ_ㅡ
크롬/파폭/IE11 에서 getElementById의 innerHTML 로 대체된 input 태그의 엘러먼트 값을 제대로 폼으로 전달하지 못하는 것 같은데 왜 이런 증상이 생기는지와 화면을 리프레쉬 하지 않고 제대로 폼값을 전달하기 위해선 어떻게 해야 하는지 모르겠습니다.
도움을 얻고 싶습니다.
<tr height=30 bgcolor="FFFFF7"> <td width=15% align=center bgcolor="F5F0E1" style="padding-left:8;">시험등급</td> <td width=85%> <select name='name' id='name' onChange="addPrice(this)"> <option value=''>--시험등급선택--</option> <option value='QI전문간호사' <?if($data[name] == "QI전문간호사") echo("selected");?>>QI 전문간호사</option> <option value='QI관리사' <?if($data[name] == "QI관리사") echo("selected");?>>QI 관리사</option> <option value='선임보험심사분석사' <?if($data[name] == "선임보험심사분석사") echo("selected");?>>선임 보험심사분석사</option> <option value='보험심사분석사' <?if($data[name] == "보험심사분석사") echo("selected");?>>보험심사분석사</option> <option value='병원서비스강사(CS)' <?if($data[name] == "병원서비스강사(CS)") echo("selected");?>>병원서비스강사(CS)</option> <option value='의료관광코디네이터' <?if($data[name] == "의료관광코디네이터") echo("selected");?>>의료관광코디네이터</option> <option value='병원코디네이터' <?if($data[name] == "병원코디네이터") echo("selected");?>>병원코디네이터</option> <option value='요양병원심사분석사' <?if($data[name] == "요양병원심사분석사") echo("selected");?>>요양병원 심사분석사</option> </select> </td> </tr> <tr height=30 bgcolor="FFFFF7"> <td align=center bgcolor="F5F0E1" style="padding-left:8;">금액</td> <td id="addZone"><?if($data[name] == "보험심사분석사") {?>1급:<input type=text name=price size=10 value="<?=$data[price]?>"> 원 / 2급:<input type=text name=price2 size=10 value="<?=$data[price2]?>"> 원<?}else{?><input type=text name=price size=10 value="<?=$data[price]?>"> 원<?}?></td> </tr>
아래는 위 코드 30행에서 addPrice() 를 호출 했을 때 실행되는 자바스크립트 소스입니다.
<script language="javascript"> function addPrice(val) { if(val.options[val.selectedIndex].value == "보험심사분석사") document.getElementById("addZone").innerHTML = "1급:<input type=text name=price size=10> 원 / 2급:<input type=text name=price2 size=10> 원 <font color=#999999>ex) 콤마(,)없이 적을 것</font>"; else document.getElementById("addZone").innerHTML = "<input type=text name=price size=10> 원 <font color=#999999>ex) 콤마(,)없이 적을 것</font>"; } </script>
태그 연관 글
- [2019/01/29] 묻고답하기 크롬에서 동영상 플레이어 문의 *3
- [2017/11/21] 묻고답하기 크롬 Incognito 접속시 사이트잠김 오류 *2
- [2017/09/25] 묻고답하기 크롬에서 ckeditor 붙여넣기가 이상합니다. ㅠ *4
- [2016/01/22] 묻고답하기 제로보드 크롬,파폭에서 스크롤이 안되요..
- [2016/01/05] 묻고답하기 ie10, 11번전 css문제
크롬/파폭/IE11에서는 F12 키를 누르면 개발자도구 창이 뜨고, 여기서 스크립트 오류 등을 한눈에 볼 수 있습니다. 스크립트 오류가 발생한다면 고쳐보세요.