JQueryセレクターのサポートが必要です。次のようなマークアップがあるとします。
<form>
<table>
<tr>
<td><input type="checkbox" id="select_all"/></td>
</tr>
<tr>
<td><input type="checkbox" name="select[]"/></td>
</tr>
<tr>
<td><input type="checkbox" name="select[]"/></td>
</tr>
<tr>
<td><input type="checkbox" name="select[]"/></td>
</tr>
</table>
</form>
ユーザーがクリックしたときに#select_all
を除くすべてのチェックボックスを取得する方法
ご意見をお寄せください。
あなたのケースで動作するはずのより完全な例:
$('#select_all').change(function() {
var checkboxes = $(this).closest('form').find(':checkbox');
checkboxes.prop('checked', $(this).is(':checked'));
});
#select_all
チェックボックスをクリックすると、チェックボックスのステータスがチェックされ、現在のフォームのすべてのチェックボックスが同じステータスに設定されます。
選択から#select_all
チェックボックスを除外する必要はないことに注意してください。このチェックボックスは他のすべてと同じステータスになります。何らかの理由で#select_all
を除外する必要がある場合、これを使用できます。
var checkboxes = $(this).closest('form').find(':checkbox').not($(this));
シンプルできれい
$('#select_all').click(function() {
var c = this.checked;
$(':checkbox').prop('checked',c);
});
Attr()メソッドが原因で、Jquery 1.9+ではトップアンサーは機能しません。代わりにprop()を使用してください:
$(function() {
$('#select_all').change(function(){
var checkboxes = $(this).closest('form').find(':checkbox');
if($(this).prop('checked')) {
checkboxes.prop('checked', true);
} else {
checkboxes.prop('checked', false);
}
});
});
$("form input[type='checkbox']").attr( "checked" , true );
または、使用できます
$("form input:checkbox").attr( "checked" , true );
HTMLを書き直し、メインチェックボックスのクリックハンドラーを提供しました
$(function(){
$("#select_all").click( function() {
$("#frm1 input[type='checkbox'].child").attr( "checked", $(this).attr("checked" ) );
});
});
<form id="frm1">
<table>
<tr>
<td>
<input type="checkbox" id="select_all" />
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="select[]" class="child" />
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="select[]" class="child" />
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="select[]" class="child" />
</td>
</tr>
</table>
</form>
$(document).ready(function(){
$("#select_all").click(function(){
var checked_status = this.checked;
$("input[name='select[]']").each(function(){
this.checked = checked_status;
});
});
});
jQuery(document).ready(function () {
jQuery('.select-all').on('change', function () {
if (jQuery(this).is(':checked')) {
jQuery('input.class-name').each(function () {
this.checked = true;
});
} else {
jQuery('input.class-name').each(function () {
this.checked = false;
});
}
});
});
$(function() {
$('#select_all').click(function() {
var checkboxes = $(this).closest('form').find(':checkbox');
if($(this).is(':checked')) {
checkboxes.attr('checked', 'checked');
} else {
checkboxes.removeAttr('checked');
}
});
});
$("#select_all").change(function () {
$('input[type="checkbox"]').prop("checked", $(this).prop("checked"));
});
このコードは私と一緒にうまく機能します
<script type="text/javascript">
$(document).ready(function(){
$("#select_all").change(function(){
$(".checkbox_class").prop("checked", $(this).prop("checked"));
});
});
</script>
クラスcheckbox_classをすべてのチェックボックスに追加するだけです
簡単でシンプル:D
問題に直面して、上記の答えのいずれも機能しません。その理由は、jQuery Uniformプラグイン( テーマメトロニック を使用)でした。答えが役立つことを願っています:)
Work withjQuery Uniform
$('#select-all').change(function() {
var $this = $(this);
var $checkboxes = $this.closest('form')
.find(':checkbox');
$checkboxes.prop('checked', $this.is(':checked'))
.not($this)
.change();
});
それらすべてを支配する1つのチェックボックス
軽量で、UniformJSとiCheckをすぐに使用できるチェックボックスを制御するプラグインを探している人のために、少なくとも1つの制御されたチェックボックスがオフになっている場合はオフになりますコース) jQuery checkAllプラグイン を作成しました。
ドキュメントページ の例を自由に確認してください。
この質問の例で必要なことは次のとおりです。
$( '#select_all' ).checkall({
target: 'input[type="checkbox"][name="select"]'
});
それは明確で単純ではありませんか?
$('.checkall').change(function() {
var checkboxes = $(this).closest('table').find('td').find(':checkbox');
if($(this).is(':checked')) {
checkboxes.attr('checked', 'checked');
} else {
checkboxes.removeAttr('checked');
}
});
$("#select_all").live("click", function(){
$("input").prop("checked", $(this).prop("checked"));
}
});
これは、トグルとして使用されるチェックボックス/要素を除く、ページ上のすべてのチェックボックスを選択する基本的なjQueryプラグインです。
(function($) {
// Checkbox toggle function for selecting all checkboxes on the page
$.fn.toggleCheckboxes = function() {
// Get all checkbox elements
checkboxes = $(':checkbox').not(this);
// Check if the checkboxes are checked/unchecked and if so uncheck/check them
if(this.is(':checked')) {
checkboxes.prop('checked', true);
} else {
checkboxes.prop('checked', false);
}
}
}(jQuery));
次に、チェックボックスまたはボタン要素で関数を呼び出します。
// Check all checkboxes
$('.check-all').change(function() {
$(this).toggleCheckboxes();
});
私は今、このスタイルに偏っています。
フォームに名前を付け、select_allボックスに「onClick」を追加しました。
また、jqueryセレクタから「select_all」チェックボックスを除外して、誰かがクリックしたときにインターネットが爆破しないようにしました。
function toggleSelect(formname) {
// select the form with the name 'formname',
// then all the checkboxes named 'select[]'
// then 'click' them
$('form[name='+formname+'] :checkbox[name="select[]"]').click()
}
<form name="myform">
<tr>
<td><input type="checkbox" id="select_all"
onClick="toggleSelect('myform')" />
</td>
</tr>
<tr>
<td><input type="checkbox" name="select[]"/></td>
</tr>
<tr>
<td><input type="checkbox" name="select[]"/></td>
</tr>
<tr>
<td><input type="checkbox" name="select[]"/></td>
</tr>
</table>