0

このスクリプトに続くチェックボックスを選択および選択解除して、div の css 表示プロパティを変更しようとしています。

<td>
 <input type="checkbox" id="c1" name="cc" />
 <label for="c1"> <span> </span>  Display : None  </label>
 <input type="checkbox" id="c2" name="cc" /> 
 <label for="c2"><span> </span> Display : Inline   </label>
</td>

そしてjqueryは次のとおりです。

 $('input:checkbox').change(function(){
   if($('#c2').attr('checked');){
     $('#hiddendiv').css("display", "block"); 
    }else{
     $('#hiddendiv').css("display", "none"); 
   }
 });  

ご覧のとおり、2 つのチェック ボックスがあり、2 番目のチェック ボックスがオンまたはオフになったときに非表示の div を表示したいと考えています。

これが機能しない理由を教えてください。

4

4 に答える 4

1

構文エラー-他のすべては機能します:

http://jsfiddle.net/jmsessink/uKGkN/

$('input:checkbox').change(function(){
  if($('#c2').attr('checked')){
    $('#hiddendiv').css("display", "block"); 
   }else{
    $('#hiddendiv').css("display", "none"); 
  }
}); ​
于 2012-12-07T21:18:28.157 に答える
1

.attr() の代わりに .prop() を使用する必要があります

フィドルの実例

$('input:checkbox').change(function() {

    $('input:checkbox').not(this).prop('checked', false);

    if ($('#c2').prop('checked')) {
        $('#hiddendiv').css({"display" : "block"});
   } else {
        $('#hiddendiv').css({"display" : "none"});
    }

});
于 2012-12-07T21:22:18.580 に答える
0

私がここで見るいくつかの問題

  1. コメントに記載されているように、構文エラーがあります。
  2. あなたのロジックは、c1とc2の値が相互に排他的であることを意味しているので、実際にはradioこれに入力を使用する必要があります
  3. attr()入力がチェックされているかどうかをチェックする良い方法ではありません。prop()代わりに使用してください。違いについては、jQueryのドキュメントを参照してください。

これが簡略化されたサンプルです

于 2012-12-07T21:18:44.247 に答える
0

コードにいくつかのsintaxの問題があります。attr()メソッドは、値を取得して必要に応じてテストするのは適切ではありません。その代わりに、メソッドを使用して、プロパティがtrueis()であるかどうかを確認できます。checked次のようなことを試してください。

$('input:checkbox').change(function(){
   $('#hiddendiv').css("display", $('#c2').is(':checked') ? "block" : "none"); 
});  

senderPS:変更イベントで(チェックボックスが変更された)を取得したい場合は、で取得できます$(this)

于 2012-12-07T21:19:55.833 に答える