익스9에서 onClick 이벤트가 안먹을수도 있나요?
본문
<table width="600" align="center" border="0" cellspacing="1" cellpadding="3" bgcolor="#8dde87">
<tr><td colspan="2" height="1" bgcolor="#2c8424"></td></tr>
<tr>
<td bgcolor="#eefaed" width="35%" style="padding-left:10px;font-weight:bold;color:#2c8424;">* 현금영수증 발급</td>
<td bgcolor="#FFFFFF" style="padding-left:10px">
<input type="radio" name="wr_15" id="wr_15" value="신청" itemname="현금영수증 신청" <?if($write[wr_15]=="신청")echo"checked";?> onclick="input(1);this.form.wr_16.required=true;this.form.wr_17.required=true;">
신청
<input type="radio" name="wr_15" id="wr_15 "value="미신청" itemname="현금영수증 신청" <?if($write[wr_15]=="미신청")echo"checked";?> onclick="alert('현금영수증을 미신청 하셨습니다. 추후 수정 불가합니다.');input(2);this.form.wr_16.required=false;this.form.wr_17.required=false;">
미신청
</td>
</tr>
</table>
<div style="relative; display:block;">
<div id="box1">
<table width="600" align="center" border="0" cellspacing="1" cellpadding="3" bgcolor="#8dde87">
<tr>
<td bgcolor="#eefaed" width="35%" style="padding-left:10px;font-weight:bold;color:#2c8424;">* 거래구분</td>
<td bgcolor="#FFFFFF" style="padding-left:10px">
<select name='wr_16' class='ed' itemname='거래구분' style="font-size:10pt; height:30px; padding:5px;">
<option value='' >유형선택</option>
<option value='소득공제' <? if($write[wr_16] == "소득공제") echo "selected"; ?>>소득공제(개인)</option>
<option value='지출증빙' <? if($write[wr_16] == "지출증빙") echo "selected"; ?>>지출증빙(사업자)</option>
</select>
</td>
</tr>
<tr>
<td bgcolor="#eefaed" width="35%" style="padding-left:10px;font-weight:bold;color:#2c8424;">* 현금영수증 발급번호</td>
<td bgcolor="#FFFFFF" style="padding-left:10px">
<input class=ed style="width:160px; font-size:11pt; height:20px; padding:5px; font-family: NanumGothic;" name=wr_17 itemname="발급번호" value="<?=$write[wr_17];?>" onkeydown="this.value=this.value.replace(/[^0-9]/g,'')"
maxlength=12 onkeyup="this.value=this.value.replace(/[^0-9]/g,'')" onblur="this.value=this.value.replace(/[^0-9]/g,'')"><br>*개인 소득공제는 휴대전화 번호, 사업자 지출증빙은 사업자번호만 <br>입력 가능(주민번호 카드번호 입력불가)
</td>
</tr>
</table>
</div>
<div id="box2" style="absolute; display:none;">
<table width="600" align="center" border="0" cellspacing="1" cellpadding="3" bgcolor="#8dde87">
<tr><td bgcolor="#eefaed" width="35%" style="padding-left:10px;font-weight:bold;color:#2c8424;">현금영수증을 미신청 하셨습니다. 추후 수정 불가합니다.</td></tr>
</table>
</div>
</div>
<script type="text/javascript">
function input(temp) // 라디오 선택에 따라서 입력폼 전환
{
if(temp==1)
{
document.getElementById("box1").style.display="";
document.getElementById("box2").style.display="none";
}else{
document.getElementById("box1").style.display="none";
document.getElementById("box2").style.display="";
}
}
function fwrite_submit(f) // 현영 신청필수(onClick이벤트 발생위해)
{
if(!$("input[name='wr_15']").is(":checked")){
alert('현금영수증 구분을 선택해주세요.');
$("input[name='wr_15']").eq(0).focus();
return false;
}
}
</script>
위와 같이 wr_15에서 라디오로 신청을 클릭시에는 신청폼이 나타나고 그에 따라서 입력폼(wr_16,wr_17)이 필수 입력으로 바뀝니다.(여기까지는 익스9에서 잘됩니다.) 그런데 wr_15에서 미신청을 클릭을 하면 미신청 폼까지는 잘 나오는데 div로 숨겨놓은 wr_16하고 wr_17을 필수입력하라고 경고가 뜨네요. 만약 글쓰기시에 바로 미신청을 클릭하면 상관없는데 신청을 한번 클릭을 한뒤 미신청으로 가면은 필수입력하라고 경고가 뜹니다. 익스플로러 9에서만 그러구요... 왜그럴까요 ㅠㅠ
!-->
답변 4
아래처럼 jquery 코드로 바꾸어서 해보세요
this.form.wr_16.required=false --> $("input[name='wr_16']").attr("required", false)
this.form.wr_17.required=false --> $(
"input[name='wr_17']").attr("required", false)
function input( 이 함수이름을 다른 것으로 변경하세요.
onclick이벤트가 브라우저에 따라 안먹히는게 아니구여
다른것과 충돌나거나 다른이벤트랑 문제가 생기면 이벤트가 발생하지않아야될것이
발생하고 반대의 현상도 나옵니다.
다른 레이어에 가렸을 가능성이 있습니다. 체크해보세요.
답변을 작성하시기 전에 로그인 해주세요.