jQuery 判断元素-是否 checked

作者:vkvi 来源:ITPOW(原创) 日期:2017-2-27

我们先看看 checkbox

如上代码,有六个 input,显示为:前五个为选中状态,最后一个为未选中。

alert 时:前五个为 checked,最后一个为 undefined。

也就是说只要标签中有 checked,即为选,与其属性值无关,而 jQuery 取属性值时也是这么认的。要判断是否选中,用 prop("checked")  || prop("checked") == "checked" 即可。

注意,如果用 attr,则取的永远是初始设置值,后面用户选中/取消选中后,取的还是原始值,所以这里用的 prop。

不过对于 radio 要注意

如上代码,有六个 input,由于是 radio,且 name 相同,显示为:第五个为选中状态,其余为未选中。

alert 时:前五个为 checked,最后一个为 undefined。

所以 jQuery 在这里要注意一下,它取的值与显示情况不符。

应付 radio 更好的办法

有时候,我们只需要关心已经选中的 radio,所以可以这么做:

这样结果就是 5。如果要判断是不是一个都没选中,就用 $("input:radio:checked").length <= 0。

相关文章