如何触发选中所有复选框?
How to trigger check all checkboxes?
我正在尝试弄清楚如何触发 link 按钮以在单击时触发并更改所有复选框以选中。当我单击该按钮时,它会弹出警报消息,但不会触发复选框。我已经尝试了该站点中列出的一些答案,但它不起作用。我用 jsfiddle.
重现了这个问题
HTML:
<h3><a href="javascript:void(0);" id="checkAll">Check</a> All</h3>
<hr/>
<input class="categories" type="checkbox" name="filter" value="Math" checked>Math<br/>
<input class="categories" type="checkbox" name="filter" value="Science" checked>Science<br/>
<input class="categories" type="checkbox" name="filter" value="Reading" checked>Reading
JS:
$('#checkAll').click(function()
{
alert("checkAll was clicked!");
console.log("Checkboxes has been refilled!");
$(':checkbox.categories').prop('checked', $(this).checked); // re-check all checkboxes
//$("input:checkbox").prop('checked', $(this).prop("checked"));
});
问题是因为 this
将引用 a
元素,而包含该元素的 jQuery 对象没有 checked
属性。相反,只需将其设置为 true
:
$('#checkAll').click(function(e) {
e.preventDefault();
$(':checkbox.categories').prop('checked', true);
});
我正在尝试弄清楚如何触发 link 按钮以在单击时触发并更改所有复选框以选中。当我单击该按钮时,它会弹出警报消息,但不会触发复选框。我已经尝试了该站点中列出的一些答案,但它不起作用。我用 jsfiddle.
重现了这个问题HTML:
<h3><a href="javascript:void(0);" id="checkAll">Check</a> All</h3>
<hr/>
<input class="categories" type="checkbox" name="filter" value="Math" checked>Math<br/>
<input class="categories" type="checkbox" name="filter" value="Science" checked>Science<br/>
<input class="categories" type="checkbox" name="filter" value="Reading" checked>Reading
JS:
$('#checkAll').click(function()
{
alert("checkAll was clicked!");
console.log("Checkboxes has been refilled!");
$(':checkbox.categories').prop('checked', $(this).checked); // re-check all checkboxes
//$("input:checkbox").prop('checked', $(this).prop("checked"));
});
问题是因为 this
将引用 a
元素,而包含该元素的 jQuery 对象没有 checked
属性。相反,只需将其设置为 true
:
$('#checkAll').click(function(e) {
e.preventDefault();
$(':checkbox.categories').prop('checked', true);
});