我正在检查all / none复选框。但是,它只能运行一次:它可以检查所有,然后取消选中所有,但不能再检查它们。
check all/none: <input type = "checkbox" id = "check_all_none"></input>
<br/>
<input type = "checkbox" class = "others"></input><br/>
<input type = "checkbox" class = "others"></input>
$('#check_all_none').change(function () {
if ( $(this).is(':checked') ){
$('.others').attr("checked", true);
}
else{
$('.others').removeAttr("checked");
// $('.others').attr("checked", false); // tried this, too
}
});
答案 0 :(得分:6)
使用
$('#check_all_none').change(function () {
$('.others').prop("checked", this.checked);
});
演示:Fiddle
答案 1 :(得分:4)
试试这个
$('#check_all_none').click(function () {
if ( $(this).is(':checked') ){
$('.others').prop("checked", true);
}
else{
$('.others').removeAttr("checked");
}
});
答案 2 :(得分:1)
使用prop代替attr。
if ( $(this).is(':checked') ){
$('.others').prop("checked", true);
}
else{
$('.others').prop("checked", false);
}
<强>更新强>:
像阿伦说的那样,这更好:$('#check_all_none').change(function () {
$('.others').prop("checked", this.checked);
});
答案 3 :(得分:0)
这是检查所有想要的复选框的简单方法:
$("#check_all_none").click(function() {
$(".others").attr('checked', this.checked);
});
答案 4 :(得分:0)
<input type = "checkbox" id = "check_all_none" onclick="checkAll(this)" />
<input type = "checkbox" class = "others" name="chk" /><br/>
<input type = "checkbox" class = "others" name="chk" />
<强> JQuery的:强>
function checkAll(t){
if ( $(t).is(':checked') ){
$('.others').prop("checked", true);
}
else{
$('.others').attr('checked', false);
}
}
<强> JavaScript的:强>
function checkAll(t){
var checkboxes= document.getElementsByName('chk');
for (var i = 0; i < checkboxes.length; i++) {
if(t.checked==true){
checkboxes[i].checked = true;
}else{
checkboxes[i].checked = false;
}
}
}
我已声明功能。因为您可以轻松地在任何地方重用此代码。我编写了两种类型的代码(JQuery和JavaScript)。两者都很好。如果您不需要使用任何jQuery库,那么请使用JavaScript代码。