2

次のコードを使用して、チェックボックスをオンとオフの間で切り替えようとしていますが、チェックを外すだけのようです。

var checkbox = $this.find('[name="category"]');

if ('checkbox:checked') {
    checkbox.prop("checked", false);
} else {
    checkbox.prop("checked", true);
}

正しく切り替えるにはどうすればよいですか?

if/else ステートメントを実行する代わりに、これを行うより良い方法はありますか? .toggle() がチェックボックスに対して正しく機能していないようです。

4

7 に答える 7

2

のようなトグル機能を試してください

$('[name="category"]').toggle(
 function() { 
    $(this).find(':checkbox').prop('checked', true); },
 function() { 
    $(this).find(':checkbox').prop('checked', false);
 }); 

また

このようにしてみてください

   var checkbox = $this.find('[name="category"]'); 
   $checkbox.attr('checked', !$checkbox.attr('checked'));

またはjquery 1.6の場合

    $checkbox.prop('checked', !$checkbox[0].checked);
于 2012-08-13T19:33:09.350 に答える
2

1つの要素にしか見えないので、そのまま使用してくださいcheckbox.checked

var checkbox = $this.find('[name="category"]').get(0);

checkbox.checked = !checkbox.checked;
于 2012-08-13T19:36:10.790 に答える
0

試す

 if (checkbox.is(':checked')) { ... }

また

checkbox.prop('checked', checkbox.is(':checked'));
于 2012-08-13T19:32:43.530 に答える
0

試す

if (checkbox.is(':checked')) {

または、もう少し複雑です:

if ($this.find('[name="category"]:checked').length) {

http://api.jquery.com/checked-selector/

http://api.jquery.com/is/

于 2012-08-13T19:32:51.143 に答える
0

IF ステートメントを再検討する必要があります。基本的に、文字列「checked:checked」をチェックしています

于 2012-08-13T19:34:34.767 に答える
0
var checkbox = $this.find('[name="category"]');
checkbox.prop("checked", !checkbox.is(":checked") );
于 2012-08-13T19:35:25.727 に答える
0

これを試して:

checkbox.prop('checked', checkbox.is(':checked'));
于 2012-08-13T19:35:31.063 に答える