2011-10-17 9 views
2

チェックボックスがオフの場合はJavaScriptを無効にし、チェックボックスがオンの場合は数字のみを有効にするために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> 

HTMLコード

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

JavaScriptが私のキーボードを使用することができないようにチェックボックスがチェックされていないよう。これは問題ありません。チェックボックスのステータスをチェックして変更し、キーを押してみました。 OnKeyPressイベントでは、チェックボックスのステータスがチェックされていません。私のコードに間違いはありますか?

+1

.checkedを= false'を使用すると、偽代入している 'でそれをチェックしていない。それを修正して、もう一度実行してください。また、あなたのコードインデントは巨大な混乱です、私は何が起こっているのか理解できません。 – Zirak

答えて

3

あなたのコードにバグがあります。ダブルエコーが必要です== javascriptで同等かどうかを確認してください。このよう

:あなたは、それはだ場合でも、中括弧のペア内のすべての条件付きのものが含まれていない場合

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

また、あなたのコードを読むために他の誰かに非常に混乱することができます単線。

だから私はこの(ちょうど明確にするため、私は本当に何も変わっていない)のようになりそう少し今までそれをリファクタリングしたい:、

<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

ありがとう!これは私のために働いた。 –

関連する問題