Jquery 我的checkAll复选框脚本不工作
我使用jquery 1.6.1检查所有一组复选框。Jquery 我的checkAll复选框脚本不工作,jquery,Jquery,我使用jquery 1.6.1检查所有一组复选框。 这是我的HTML代码: <form action=""> <div class="stats"> <h2 class="title">Reason for Celebrity</h2> <input name="reason" type="checkbox" value="net" />Famous on the internet<br/>
这是我的HTML代码:
<form action="">
<div class="stats">
<h2 class="title">Reason for Celebrity</h2>
<input name="reason" type="checkbox" value="net" />Famous on the internet<br/>
<input name="reason" type="checkbox" value="crim" />Committed a crime<br />
<input name="reason" type="checkbox" value="model" />Dates a super model<br />
<input name="reason" type="checkbox" value="tv" />Hosts a TV show<br />
<input name="reason" type="checkbox" value="japan" />Big in Japan<br />
<hr />
<input class="check-all" name="reason" type="checkbox" /><span>Check all</span>
<br/>
<input type="submit" value="Submit" class="submit" />
</div>
</form>
但这不适用于取消选中复选框。你能帮我解决这个问题吗?试着更换
$(group).attr('checked', $(this).attr('checked'));
与
$(this.attr('checked')
-返回未定义的
您应该这样做:
var variable = (undefined == $(this).attr('checked'))?false:$(this).attr('checked');
$(group).attr('checked', variable);
为了避免未定义的值,问题是您没有明确添加任何选项以取消选中复选框。 一个正确的方法是
$(document).ready(function(){
$('.check-all:checkbox').change(function(event) {
var group = ':checkbox[name=' + $(this).attr('name') + ']';
$(group).each(function(){
this.checked = event.target.checked;
});
});
});
工作小提琴:
谢谢。但是为什么$(this).attr('checked')在取消选中check all checkbox中返回false,因为据我所知,可能的值是true、false和'checked'。true和“checked”具有相同的含义。
var variable = (undefined == $(this).attr('checked'))?false:$(this).attr('checked');
$(group).attr('checked', variable);
$(document).ready(function(){
$('.check-all:checkbox').change(function(event) {
var group = ':checkbox[name=' + $(this).attr('name') + ']';
$(group).each(function(){
this.checked = event.target.checked;
});
});
});