为啥我用jQuery写好checkbox的全选后,点击两次后,就不行了,要刷新页面后,点击才有响应,源码是这样

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我用jQuery写好checkbox的全选后,点击两次后,就不行了,要刷新页面后,点击才有响应,源码是这样相关的知识,希望对你有一定的参考价值。

//全选
$("#selectAll").click(function()
var flag;
if (this.checked)
flag = true;
else
flag = false;

alert(flag);
$("input[name='select']").each(function()
$(this).attr("checked", flag);
);
);

参考技术A 是jQuery版本问题。
我操作属性用的是
$(XXX).attr(attrName);而jQuery的版本用的是2.1.1,这就是存在一个兼容性和稳定性问题。
jQuery API明确说明,1.6+的jQuery要用prop,尤其是checkBox的checked的属性的判断,即
使用代码如下:
$(input[name='checkbox']).prop(checked);
$(input[name='checkbox']).prop(disabled, false);
$(input[name='checkbox']).prop(checked, true);
于是乎将attr改为prop,问题得解。
如果您遇到这个奇怪的问题那就赶紧试试吧!
参考技术B //上面是jquery函数
$(document).ready(function ()
//全选
$("#CheckedAll").click(function()
if(this.checked) //如果当前点击的多选框被选中
$('input[type=checkbox][name=items]').attr("checked", true );
else
$('input[type=checkbox][name=items]').attr("checked", false );

);

//输出值
$("#send").click(function()
var str="你选中的是:\r\n";
$('input[type=checkbox][name=items]:checked').each(function()
str+=$(this).val()+"\r\n";
)
alert(str);
);
)
//下面是body中的html代码
<body>
<form method="post" action="">
你爱好的运动是?
<input type="checkbox" id="CheckedAll" value="全选/全不选"/>全选/全不选
<br/>
<input type="checkbox" name="items" value="足球"/>足球
<input type="checkbox" name="items" value="篮球"/>篮球
<input type="checkbox" name="items" value="羽毛球"/>羽毛球
<input type="checkbox" name="items" value="乒乓球"/>乒乓球
<br/>
<input type="button" id="send" value="提 交"/>
</form>
</body>追问

能加你的q吗,还是不行

参考技术C $("#selectAll").click(function()
if($(this).attr("checked"))
$("input:checkbox").attr("checked","checked");
else
$("input:checkbox").removeAttr("checked");

);

追问

还是选择不了

追答$("#selectAll").click(function()
if (this.checked)
$("input:checkbox").attr("checked","checked");
else
$("input:checkbox").removeAttr("checked");

);

本回答被提问者采纳
参考技术D $("input[name='select']").each(function()
$(this).attr("checked", flag);
) ;
搞这么麻烦干嘛
$("input[name='select']").attr("checked",flag);
试试

jquery实现checkbox的全选

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>jQuery实现CheckBox全选、全不选</title>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.11.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
function checkAll(obj){
$("#box input[type=‘checkbox‘]").prop(‘checked‘, $(obj).prop(‘checked‘));
}
</script>

</head>
<body>
<div id="box">
<input type="checkbox" onclick="checkAll(this)">全选<br><br>
<input type="checkbox"><br>
<input type="checkbox"><br>
<input type="checkbox"><br>
<input type="checkbox"><br>
<input type="checkbox"><br>
<input type="checkbox"><br>
<input type="checkbox"><br>
<input type="checkbox"><br>
<input type="checkbox"><br>
</div>
</body>
</html>

以上是关于为啥我用jQuery写好checkbox的全选后,点击两次后,就不行了,要刷新页面后,点击才有响应,源码是这样的主要内容,如果未能解决你的问题,请参考以下文章

该死的Checkbox啊,JS单选后全选失效怎么办?

jquery实现checkbox的全选

jQuery实现checkbox的全选和反选

jquery中checkbox的全选与反选

jquery实现全选 我全选后,取消全选,再点击全选,却选不上。我手动选上,然后点击取消全选,能够取消。

如何使用jquery实现gridview中checkbox(复选框)的全选功能?