我有一个默认为选中状态(checked="checked")的复选框。
但是如果我取消复选框的选中状态,然后执行以下操作:
alert($('#checkbox').attr('checked'));
无论是否被选中,它都会始终警示checked
。
如何获取复选框的实际选中状态(而不是默认代码中写的内容)?
我有一个默认为选中状态(checked="checked")的复选框。
但是如果我取消复选框的选中状态,然后执行以下操作:
alert($('#checkbox').attr('checked'));
无论是否被选中,它都会始终警示checked
。
如何获取复选框的实际选中状态(而不是默认代码中写的内容)?
attr
绑定到DOM属性,然后保留初始值。如果您想检查状态,则必须使用 prop
代替:
$('#checkbox').prop('checked')
如果需要更多信息,您可以阅读jQuery文档中“属性 vs. 属性”一段,了解prop
的相关内容。
checked
属性中,因此请使用.prop()
函数:$('#checkbox').prop('checked')
您可以做
alert($('#checkbox').prop('checked'));
true
或false
要获取有关属性与prop的更多信息,请查看官方prop文档,特别是“属性与属性”一节。$('#checkbox').is(':checked')
请查看这个修复代码的链接:http://codepen.io/anon/pen/mHqAI
我希望能听到有人解释为什么会发生这种情况,但我会展示我一直以来用来修复它的方法。
$('#checkbox').get(0).checked
我正在使用本地DOM的解释来判断复选框是否被选中,只要#checkbox存在,这个方法就可以完美地工作。
alert(document.getElementById('checkbox').checked);
{{链接1:Codepen}}