2016-05-10 12 views
2

これは簡単だと思いました。ここではjQueryを使ってチェックボックスのチェックを外すことについて多くの答えがありますが、試してみると動作しないようです。私はフォームをリセットするための私の機能の一部としてそれらのチェックを外したいと思います。jQuery - チェックボックスをオフにしてください

私はループを持っていると私はそれ内部のチェックボックスを作成します。 <input type="checkbox" name="is_chosen[]" value="{{ $sample->id }}" class="flat">

ここでは(ないすべてのチェックボックスが最初にチェックされます)チェックボックスのチェックを外すための私のコードです:

$('input:checkbox').each(function() { 
    if(this.checked) { 
    $(this).attr('checked', false); 
    } 
}); 

私も交換しようとしていますattrprop。私もちょうど$(input:checkbox).prop('checked', false);を使ってみました。私は他の人にもっと挑戦しましたが、うまくいきません。私は何が欠けていますか?

+0

これは '$(input:checkbox).prop( 'checked'、false);'です。それが動作しない場合、 '$(input:checkbox)'が何を選択しているかを確認してください。 – dfsq

+0

[demo](https:// jsfiddle。net/Lk12nvjz /)デモが動作するのを確認してください – guradio

+0

[こちらをクリックしてください](http://stackoverflow.com/questions/17915065/javascript-check-uncheck-checkboxes-based-on-id)それが助けてくれると期待しています:) – Mir

答えて

0

ご不便をおかけして申し訳ありません。

なぜ私は正確にわからないが、問題はclass="flat"(Bootstrap製)であることが判明した。あなたの答えのどれも働いていなかったので心配しました。それからクラスを取り除くことを考えました。クラスがそこにあったとき、チェックされたすべてのチェックボックスは機能を実行した後もチェックされていました。クラスを削除すると、機能を実行した後にチェックボックスがチェックされなくなりました。私はあなたの答えをもう一度試み、彼らは働いた。投稿したコードも試してみましたが、うまくいきました。それで、それはクラス全体でした。

3

この仕事ん:https://jsfiddle.net/bfqew4du/

setInterval(function(){ 
    $('input:checkbox').each(function() { 
    $(this).attr('checked', !this.checked); 
    }); 
},1000); 

あなたはDOMのロード後にJavaScriptを実行していることを確認してください。

+1

ループは$( ":checked")で実行できるのでここでは必要ありません。attr( 'checked'、false); –

+0

ループは@ArunSharmaではほとんど問題になりません。これは質問に答えました。 – Mackan

+0

@Mackan質問に答えるだけではありません。あなたのコードは、きれいでクリアでポイントに達する必要があります。 setIntervalと.eachは無駄なコードです。 –

9

each()を使用する必要はありません。次のようにすることができます。あなたがループする必要はありません

$('input:checkbox:checked').prop('checked', false); 
+1

は非効率的なコードではありません – ShaneMit

2

、それは単一のコード行で実現することができる:使用$(":checked").attr('checked', false);

$(document).ready(function(){ 
 
    $(":checked").attr('checked', false); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" checked="checked"> 
 
<input type="checkbox" checked="checked"> 
 
<input type="checkbox"> 
 
<input type="checkbox">

0

ユニークを適用するのは良いアイデアですクラス名を動的要素に追加します。そのため、すべてがこのクラス名を使用して選択できます。あなたが必要なアクションを実行し、このセレクタを使用して

$('.dynmc-check') 

、例えば:あなたは

...append('<input type="checkbox" name="is_chosen[]" value="1" class="flat dynmc-check">'); 

その後、これらのチェックボックスを選択するには、このクラスdynmc-checkを使用し、クラス名とチェックボックスを追加することができます生成しながらだから、チェックボックスをリセットします。

$('.dynmc-check').removeAttr('checked'); 

またはチェックものを数える:

var checkCount = $('.dynmc-check:checked').length; 

は、詳細はthis working fiddleを参照してください。

関連する問題