回答:
あなたは書ける:
$(document).ready(function() {
$("#select-all-teammembers").click(function() {
var checkBoxes = $("input[name=recipients\\[\\]]");
checkBoxes.prop("checked", !checkBoxes.prop("checked"));
});
});
jQuery 1.6より前のバージョンでは、prop()ではなくattr()しかなかったため、以前は次のように記述していました。
checkBoxes.attr("checked", !checkBoxes.attr("checked"));
ただし、「ブール」HTML属性に適用する場合prop()
よりもセマンティクスが優れているattr()
ため、通常、この状況で推奨されます。
$('input[type=checkbox]').trigger('click');
以下の@ 2astalavistaで言及されているのはより簡潔であり、「変更」イベントをトリガーします。
//this toggles the checkbox, and fires its event if it has
$('input[type=checkbox]').trigger('click');
//or
$('input[type=checkbox]').click();
私はこれが古いことを知っていますが、トグルが各チェックボックスの状態を切り替える必要があることを意味する可能性があるという点で、質問は少しあいまいでした。3つをチェックし、2つをチェックしていない場合、トグルすると、最初の3つがチェック解除され、最後の2つがチェックされます。
そのため、各チェックボックスの状態を切り替えるのではなく、すべてのチェックボックスを同じ状態にするため、ここでのソリューションは機能しません。やって$(':checkbox').prop('checked')
多くのチェックボックスには、論理を返し、すべての間で.checked
それらのいずれかがチェックされていない場合は、バイナリの性質、すなわち、返された値ですfalse
。
.each()
すべてを等しくするのではなく、実際に各チェックボックスの状態を切り替えたい場合に使用する必要があります。たとえば、
$(':checkbox').each(function () { this.checked = !this.checked; });
プロパティはすべてのブラウザーに存在する$(this)
ため、ハンドラー内での必要はありません.checked
。
ここにあなたが望む別の方法があります。
$(document).ready(function(){
$('#checkp').toggle(
function () {
$('.check').attr('Checked','Checked');
},
function () {
$('.check').removeAttr('Checked');
}
);
});
私が考えることができる最良の方法。
$('#selectAll').change(function () {
$('.reportCheckbox').prop('checked', this.checked);
});
または
$checkBoxes = $(".checkBoxes");
$("#checkAll").change(function (e) {
$checkBoxes.prop("checked", this.checked);
});
または
<input onchange="toggleAll(this)">
function toggleAll(sender) {
$(".checkBoxes").prop("checked", sender.checked);
}
jQuery 1.6以降で.prop(function)
は、見つかった各要素のチェック状態を切り替えるために使用できます。
$("input[name=recipients\\[\\]]").prop('checked', function(_, checked) {
return !checked;
});
チェックボックスを切り替える必要のある画像だとすると、これは私にとってはうまくいきます
<img src="something.gif" onclick="$('#checkboxid').prop('checked', !($('#checkboxid').is(':checked')));">
<input type="checkbox" id="checkboxid">
チェックインのすべてのチェックボックスを更新する必要があり、それ自体を一定の条件の下で。'#select-all-teammembers'をクリックしてから、いくつかのアイテムのチェックを外して、もう一度[select-all]をクリックしてください。矛盾が見られます。これを防ぐには、次のトリックを使用します。
var checkBoxes = $('input[name=recipients\\[\\]]');
$('#select-all-teammembers').click(function() {
checkBoxes.prop("checked", !checkBoxes.prop("checked"));
$(this).prop("checked", checkBoxes.is(':checked'));
});
ところで、上記のように、DOMオブジェクトのすべてのチェックボックスをキャッシュする必要があります。
これは、html5とラベルが付いたチェックボックスを選択せずにチェックボックスを切り替えるjQueryの方法です。
<div class="checkbox-list margin-auto">
<label class="">Compare to Last Year</label><br>
<label class="normal" for="01">
<input id="01" type="checkbox" name="VIEW" value="01"> Retail units
</label>
<label class="normal" for="02">
<input id="02" type="checkbox" name="VIEW" value="02"> Retail Dollars
</label>
<label class="normal" for="03">
<input id="03" type="checkbox" name="VIEW" value="03"> GP Dollars
</label>
<label class="normal" for="04">
<input id="04" type="checkbox" name="VIEW" value="04"> GP Percent
</label>
</div>
$("input[name='VIEW']:checkbox").change(function() {
if($(this).is(':checked')) {
$("input[name='VIEW']:checkbox").prop("checked", false);
$("input[name='VIEW']:checkbox").parent('.normal').removeClass("checked");
$(this).prop("checked", true);
$(this).parent('.normal').addClass('checked');
}
else{
$("input[name='VIEW']").prop("checked", false);
$("input[name='VIEW']").parent('.normal').removeClass('checked');
}
});
各ボックスを個別に切り替えたい場合(または1つのボックスだけでも機能する場合):
.each()を使用することをお勧めします。さまざまなことを実行したい場合は簡単に変更でき、しかも比較的短くて読みやすいからです。
例:
// toggle all checkboxes, not all at once but toggle each one for its own checked state:
$('input[type="checkbox"]').each(function(){ this.checked = ! this.checked });
// check al even boxes, uncheck all odd boxes:
$('input[type="checkbox"]').each(function(i,cb){ cb.checked = (i%2 == 0); });
// set all to checked = x and only trigger change if it actually changed:
x = true;
$('input[type="checkbox"]').each(function(){
if(this.checked != x){ this.checked = x; $(this).change();}
});
余談ですが、なぜ誰もが.attr()または.prop()を使用して物事をチェック(アン)するのかわかりません
私の知る限り、element.checkedはすべてのブラウザで常に同じように機能しましたか?
jQuery("#checker").click(function(){
jQuery("#mydiv :checkbox").each(function(){
this.checked = true;
});
});
jQuery("#dechecker").click(function(){
jQuery("#mydiv :checkbox").each(function(){
this.checked = false;
});
});
jQuery("#checktoggler").click(function(){
jQuery("#mydiv :checkbox").each(function(){
this.checked = !this.checked;
});
});
;)
<table class="table table-datatable table-bordered table-condensed table-striped table-hover table-responsive">
<thead>
<tr>
<th class="col-xs-1"><a class="select_all btn btn-xs btn-info"> Select All </a></th>
<th class="col-xs-2">#ID</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" name="order333"/></td>
<td>{{ order.id }}</td>
</tr>
<tr>
<td><input type="checkbox" name="order334"/></td>
<td>{{ order.id }}</td>
</tr>
</tbody>
</table>
試してください:
$(".table-datatable .select_all").on('click', function () {
$("input[name^='order']").prop('checked', function (i, val) {
return !val;
});
});
最も基本的な例は次のとおりです。
// get DOM elements
var checkbox = document.querySelector('input'),
button = document.querySelector('button');
// bind "cilck" event on the button
button.addEventListener('click', toggleCheckbox);
// when clicking the button, toggle the checkbox
function toggleCheckbox(){
checkbox.checked = !checkbox.checked;
};
<input type="checkbox">
<button>Toggle checkbox</button>
私の推測では、通常のバリアントを提案した最も正しい人はGigolNet Gigolashviliですが、さらに美しいバリアントを提案したいと思います。チェックして
$(document).on('click', '.fieldWrapper > label', function(event) {
event.preventDefault()
var n = $( event.target ).parent().find('input:checked').length
var m = $( event.target ).parent().find('input').length
x = n==m? false:true
$( event.target ).parent().find('input').each(function (ind, el) {
// $(el).attr('checked', 'checked');
this.checked = x
})
})
このコードは、Webテンプレートで使用されるトグルスイッチアニメーターをクリックすると、チェックボックスをトグルします。コードで使用可能な「.onoffswitch-label」を置き換えます。「checkboxID」は、ここで切り替えられるチェックボックスです。
$('.onoffswitch-label').click(function () {
if ($('#checkboxID').prop('checked'))
{
$('#checkboxID').prop('checked', false);
}
else
{
$('#checkboxID').prop('checked', true);
}
});