无论是否选中单选按钮,.is(':checked')都将返回false。以下是我调试时在Chrome控制台上玩的一些东西:
> $('#blah')
[<input type="radio" id="blah" name="blah_type" value="blah" class="styled" checked="checked">]
> $('#blah').removeAttr('checked')
[<input type="radio" id="blah" name="blah_type" value="blah" class="styled">]
> $('#blah').is(':checked')
false
> $('#blah').prop('checked', true)
[<input type="radio" id="blah" name="blah_type" value="blah" class="styled">]
> $('#blah').is(':checked')
false
> $('#blah').prop('checked')
true
> $('#blah').removeProp('checked')
[<input type="radio" id="blah" name="blah_type" value="blah" class="styled">]
> $('#blah').attr('checked', true)
[<input type="radio" id="blah" name="blah_type" value="blah" class="styled" checked="checked">]
> $('#blah').attr('checked')
"checked"
> $('#blah').prop('checked')
undefined
> $('#blah').is(':checked')
false
这里可能出了什么问题?我使用的是jQuery 1.6.4。
使用.prop('checked')
。
我也面临同样的问题。.is()
无法捕获复选框元素的选中状态。
根据jQuery API文档,不要使用.removeProp()
删除checked
或其他本机属性。我认为.removeAttr()
也是如此。
http://api.jquery.com/removeProp/