2011-12-14 19 views
2

私はテキストボックス(myinput)で値が空でない場合にチェックボックスのグループを有効にしようとすると、グループを無効にしますが、期待通りに機能しません。私は間違って何をしていますか?テキストボックスの値に基づいてチェックボックスを有効にする方法は?

HTML

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 

     function enable_cb() { 
       if ($(this).val() != "") { 
       $("input.group1").removeAttr("disabled"); 
      } 
      else { 
       $("input.group1").attr("disabled", true); 
      } 
     } 

    </script> 
</head> 
<body> 
    <form name="frmChkForm" id="frmChkForm"> 
    <input id="mytext" type="text" onkeydown="enable_cb(this);" /> 

    <input type="checkbox" name="chk9[120]" class="group1"> 
    <input type="checkbox" name="chk9[140]" class="group1"> 
    <input type="checkbox" name="chk9[150]" class="group1"> 
    </form> 
</body> 
</html> 

答えて

3

メソッドで入力パラメータを宣言する必要があります。 'this'は自動的にメソッドに送られません。

function enable_cb(textbox) { 
      if ($(textbox).val() != "") { 
      $("input.group1").removeAttr("disabled"); 
     } 
     else { 
      $("input.group1").attr("disabled", true); 
     } 
    } 
+0

さらに、jQueryからイベントリスナーを割り当て、 '$(this)'に固執してください。 –

-2

はあなただけ$(".group1")または$(".group1 input")を使用してみましたか?

+0

'.group1'は、現在のコードと全く同じ結果を返します。 '.group1'要素の子である入力を探すので' .group1 input'は動作しません。これは問題とはまったく関係ありません。 –

関連する問題