我一直在尝试根据以下链接为表单创建一个“全选”复选框,但我不断收到错误。我已经搜索过,但是没有运气搞清楚这一点。我不确定我是否正确设置了选择器。任何帮助都将非常感激!
Select all checkboxes with a text link
表格
<li id='field_1_17' class='gfield gfield_html gfield_html_formatted gfield_no_follows_desc' >
<a href="#' id="checkall">Select all checkboxes</a>
</li>
<li id='field_1_12' class='gfield' >
<label class='gfield_label'>Wednesday 1/22</label>
<div class='ginput_container'>
<ul class='gfield_checkbox' id='input_1_12'>
<li class='gchoice_12_1'>
<input name='input_12.1' type='checkbox' value='2:30-2:40 Welcome and introduction' id='choice_12_1' tabindex='11' />
<label for='choice_12_1'>2:30-2:40 Welcome and introduction</label></li>
从其他帖子中使用的脚本
<script type="text/javascript">
$(function () {
$('#checkall').click(function () {
var checked = $(this).data('checked');
$('input_1_12').find(':checkbox').attr('checked', !checked);
$(this).data('checked', !checked);
});
});
</script>
答案 0 :(得分:1)
你有一个缺失点。
$('input_1_12').find(':checkbox').prop('checked', !checked);
应该是:
$('.input_1_12').find(':checkbox').prop('checked', !checked);
甚至更好:
$('.input_1_12[input[type="checkbox"]').prop('checked', !checked);
<强>更新强>
已将attr()
更改为prop()
,因为attr方法需要一个字符串。
更新2:以下是您可以使用attr
执行的操作var checked = $(this).data('checked'),
checkboxes = $('.input_1_12[input[type="checkbox"]');
if (checked) {
checkboxes.removeAttr("checked");
}else {
checkboxes.attr("checked","checked");
}
答案 1 :(得分:0)
ID选择器以#
开头,您应该使用prop()
设置选中的属性!
$(function () {
$('#checkall').on('click', function () {
var checked = $(this).data('checked');
$('#input_1_12 [type="checkbox"]').prop('checked', !checked);
$(this).data('checked', !checked);
});
});