3

ラジオボタンがチェックされているかどうかに関係なく、.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

ここで何がうまくいかない可能性がありますか?jQuery1.6.4を使用しています。

4

2 に答える 2

5

を使用します.prop('checked')

私も同じ問題に直面しました。.is()チェックボックス要素のチェック済みステータスをキャッチできません。

于 2013-03-05T14:17:08.010 に答える
1

.removeProp()jQuery APIのドキュメントによると、削除checkedやその他のネイティブプロパティには使用しないでください。私も同じだと思い.removeAttr()ます。

http://api.jquery.com/removeProp/

于 2012-08-18T04:52:30.100 に答える