我在尝试添加由复选框启动的jQuery功能时遇到了一个奇怪的问题,我的复选框似乎在切换checked属性,因为在单击时,复选标记会在视觉上切换,但“checked”属性实际上从未更改。
下面是我的问题的一个例子:http://jsfiddle.net/ez710gxL/3/
<input id="check_box_2" class="css-checkbox padding-left-3" type="checkbox" checked="checked" />
<label for="check_box_2" name="cb_lbl_2" class="css-label" style="margin-top:5px; margin-left:10px;">Show Note</label>
我的问题是:如果checked属性没有改变,如何使用jQuery来确定复选框是否被选中?
2条答案
按热度按时间oymdgrw71#
使用jQuery .prop()而不是.attr()
设置
.prop("checked", true)
。这是.prop()
相对于.attr()
的最大优点之一,因为.prop()
可以设置非字符串的值。下面是一个如何使用它的工作示例:
06odsfpq2#
好吧,显然问题不在于prop/attr切换为“选中”,而在于浏览器开发者工具时属性的更新。当我检查复选框时,checked属性总是保持为“选中”,但是下面的代码可以确定复选框是否真的被选中(@War10ck的建议代码):