我在1.8.3中使用过这个属性,但这似乎不起作用
if ($("#checkbox").attr("checked"))
{
alert("Checked");
}
else
{
alert("Not checked");
}
检查上面代码适用于1.8.3的this fiddle
检查this fiddle,其中相同的代码不适用于1.9
答案 0 :(得分:3)
您不应该使用.attr
来查看是否选中了复选框 - 1.9 introduced a breaking change。请改用.prop
。
答案 1 :(得分:2)
尝试:
if ($("#checkbox").is(":checked")){
alert("Checked");
}
else{
alert("Not checked");
}
答案 2 :(得分:1)
从jQuery 1.6开始,.prop()
方法提供了一种显式检索属性值的方法,而.attr()
检索属性。
答案 3 :(得分:1)
使用.prop
代替.attr
此外,您在小提琴中使用.live
,这在您使用的jquery版本中不受支持,
您需要使用.on()
代替.live
演示---->
http://jsfiddle.net/7VQbN/4/
答案 4 :(得分:1)
你可以这样做:
if ($("#checkbox").prop("checked")){
alert("Checked");
}
else{
alert("Not checked");
}
正如.prop()
API文档中所述: -
在jQuery 1.6之前,
.attr()
方法有时会获取属性值 在检索可能导致的某些属性时会考虑到这一点 不一致的行为。 从jQuery 1.6 开始,.prop()
方法提供了一个.attr()
检索时显式检索属性值的方法 属性。
答案 5 :(得分:1)
checked
不是复选框的属性。它是一个属性。之前jquery 1.6
attr用于更改复选框的checked属性,该属性错误,因此在较新版本中删除。所以{{1} }被添加为新功能以更改控件的属性。