0

라디오 버튼을 사용하여 양식에 제출할 필드를 선택하고 싶습니다. 이 HTML 코드를IE7과 IE8에서 javascript 라디오 버튼이 작동하지 않습니다.

<script> 
    function validateForm(){ 
     var x=document.forms["preinsert"]["RIF"].value; 
     var y=document.forms["preinsert"]["CTP"].value; 
     var xd=document.forms["preinsert"]["RIF"].disabled; 
     var yd=document.forms["preinsert"]["CTP"].disabled; 
     if (xd == false){ 
      if (x==null || x==""){ 
       alert("The first field can't be empty."); 
       return false; 
      } 
     } 
     else if (yd == false){ 
      if (y==null || y==""){ 
       alert("The second field can't be empty."); 
       return false; 
      } 
     } 
    } 
</script> 

: 나는이 스크립트를 사용하고있어

<form name="preinsert" action="/ServletPreInsert" method="post" onsubmit="return validateForm()"> 
    <table> 
     <tr> 
      <td> 
       <input type="radio" name="rad" checked="checked" onclick="RIF.disabled=false; CTP.disabled=true;"/> 
       <select name="RIF1" class="right-select"> 
        <option selected="selected">NB</option> 
        <option>LTI</option> 
       </select> 
      </td> 
      <td> 
       <input id="RIF" name="RIF" class="fixed-input" type="text"> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <input type="radio" name="rad" onclick="RIF.disabled=true; CTP.disabled=false;"/>Counterparty 
      </td> 
      <td> 
       <select id="CTP" name="CTP" class="fixed-select" disabled> 
        <option>Option_1</option> 
        <option>Option_2</option> 
        <option>Option_3</option> 
       </select> 
      </td> 
     </tr> 
    </table> 
    </br></br> 
    <p align="right"><input type="submit" value="Insert"></p> 
</form> 

내가 몰래 있어요입니다 : 나는 IE7/8, 같은 브라우저에서이 코드를 사용하는 경우 난을 선택하면 두 번째 라디오 버튼, 옵션을 누른 다음 내 양식을 제출, 자바 스크립트에서 오류 메시지가 나타납니다 : "두 번째 필드는 비어있을 수 없습니다." 하지만 첫 번째 라디오 버튼을 선택한 상태에서 첫 번째 입력란에 무언가를 입력하면 원하는대로 작동합니다.

"미친"일은 Firefox 26.0에서 발생하지 않습니다.

그래서, 무엇이 문제입니까? 당신은 IE7/8에서이 작업을하려면

+0

심각하게도, 창에서 전역 이름을 사용하여 요소에 액세스하고 onclick 등을 사용할 수 없게 설정했습니다.이 모든 것이 실제로 내게 엉뚱한 것처럼 보입니까? – adeneo

+0

그 때 당신은 무엇을 건의합니까? 고맙습니다. – abierto

+0

대신 적절한 이벤트 처리기 및 선택기를 제안합니다. – adeneo

답변

0

,이를 변경해야합니다

<select id="CTP" name="CTP" class="fixed-select" disabled> 
    <option>Option_1</option> 
    <option>Option_2</option> 
    <option>Option_3</option> 
</select> 

을 이것으로 :

<select id="CTP" name="CTP" class="fixed-select" disabled> 
    <option value="Option_1">Option_1</option> 
    <option value="Option_2">Option_2</option> 
    <option value="Option_3">Option_3</option> 
</select> 

value 매개 변수가 설정되어 있지 않은 경우 때문에, 그것은 항상 파악한다 a null 값입니다.

관련 문제