我想在jquery事件按钮单击上选择所有输入复选框字段,但是当我单击按钮时没有任何反应
JQUERY
$('#selAll').on('click', function() {
$(".cb").attr('checked', $(this).is(":checked"));
});
HTML
<input type="button" value="Select All" class="btn" id="selAll" />
<input type="checkbox" name="a" value="1" class="cb">
<input type="checkbox" name="b" value="1" class="cb">
这是最好的/正确的解决方案吗?谢谢 JsFiddle example
答案 0 :(得分:5)
要选中复选框,您应该使用prop()方法:
$('.cb').prop('checked', true);
修改强> 这是从jQuery API文档中推荐的。我知道你想要切换,可以这样做:
$('.cb').prop('checked', function(i, val) {return !val;});
<强> EDIT2:强> 如果您想通过一个按钮打开/关闭所有复选框,则必须保留某种记录,告诉脚本打开或关闭。最简单的方法是更改按钮的标题,并按此方式执行。但这是你的选择。例如:
$('#button').on('click', function(){
// Change values
$('.cb').prop('checked', ($(this).val() == 'Check'));
// Change caption of this button
$(this).val( ($(this).val() == 'Check' ? 'Uncheck' : 'Check') );
});
// HTML
<input type="button" id="button" value="Check" />
当然,如果您只想要“全部检查”按钮,我的第一个代码示例就适用了。
答案 1 :(得分:3)
<击> 撞击>
<击> $('#selAll').on('click', function() {
$(".cb").attr('checked', "checked");
});
击> <击> 撞击>
即使.attr()
也有效,但在评论部分中建议烤,推荐的功能是.prop()
$('.cb').prop('checked', true);
答案 2 :(得分:0)
我总是使用字符串设置checked属性“checked”,不确定这是否是最好的方法,但它适用于我的情况。
为了让它成功:
变化
$(".cb").attr('checked', $(this).is(":checked"));
到
$("input.cb").attr('checked', "checked");
这应该有用!
答案 3 :(得分:0)
在!
前面使用$(this).is(":checked")
:
$('#selAll').on('click', function () {
$(".cb").attr('checked', !$(this).is(":checked"));
});
答案 4 :(得分:0)
function selectAll(){
$('.selectedId').attr('checked', isChecked('selectall'));
}
function isChecked(checkboxId){
var id = '#' + checkboxId;
return $(id).is(":checked");
}