2011-10-17 3 views
2

확인란을 선택하지 않은 경우 자바 스크립트를 사용하고 확인란을 선택하면 숫자 만 사용하려면 JavaScript를 사용하고 있습니다.체크 박스 상태 변경 onkeypress

내 코드는입니다.

<script type="text/javascript"> 
    function isNumberKey(evt) 
    { 
     if(document.getElementById("check1").checked=false) 
     { 
     var charCode = (evt.which) ? evt.which : event.keyCode 
    if (charCode > 31 && (charCode < 48 || charCode > 57)) 
    return false; 
    return true; 
     } 
    else 
     { 
     var charCode = (evt.which) ? evt.which : event.keyCode 
    if (charCode > 1 && charCode < 127) 
     return false; 
      return true; 
     } 
    } 
    </script> 

체크 박스와 같은 기본에서

<asp:CheckBox ID="check1" runat="server"/> 
<asp:TextBox ID="tbxt1" runat="server" MaxLength="6" Width="200" onkeypress="return isNumberKey(event);" TextMode="Password" autocomplete="off" /> 

가 내 키보드를 사용할 수있게되지 자바 스크립트 때문에 선택하지 HTML 코드입니다. 이건 괜찮아. 체크 박스 상태를 체크하여 변경하고 키를 눌러 봅니다. OnKeyPress 이벤트에서 확인란 상태가 선택 취소로 변경됩니다. 내 코드에 문제가 있습니까?

+1

이 .checked를 = 당신이 거짓 할당하고 FALSE ', 그것을 확인하지 않습니다. 이를 수정하고 다시 실행하십시오. 또한 코드 압흔은 거대한 엉망입니다. 나는 무슨 일이 일어나는지 알 수 없습니다. – Zirak

답변

3

코드에 버그가 있습니다. 자바 스크립트에서 평등을 확인하려면 double equlas ==이 필요합니다. 이처럼

: 또한

if(document.getElementById("check1").checked==false)

, 당신이 A의 경우에도, 중괄호 한 쌍 내의 모든 조건 물건을 포함하지 않는 경우 다른 사람이 귀하의 코드를 읽기에 매우 혼란 스러울 수 있습니다 하나의 선.

그래서 내가 (단지 명확성을 위해, 난 정말 아무것도 변경되지 않은) 이렇게 될 이제까지 약간을 리팩토링 것 :`에서

<script type="text/javascript"> 
    function isNumberKey(evt) 
    { 
    if(document.getElementById("check1").checked==false) 
    { 
     var charCode = (evt.which) ? evt.which : event.keyCode 
     if (charCode > 31 && (charCode < 48 || charCode > 57)) 
     { 
      return false; 
     } 
     else 
     { 
      return true; 
     } 
    } 
    else 
    { 
     var charCode = (evt.which) ? evt.which : event.keyCode 
     if (charCode > 1 && charCode < 127) 
     { 
     return false; 
     } 
     else 
     { 
     return true; 
     } 
    } 
    } 
    </script> 
+0

감사합니다. 이것은 나를 위해 일했다. –