Loading
loading..

jQueryのattr(“checked”, true)でチェックが付かない!!

 2014年12月08日 javascript/jQuery 技術的なこと
javascript


チェックボックスのチェックを後から動的に付けたい時に、上手く行かなかったのでメモがてら記録します。

チェックボックスのチェックを、表示後にjQueryから付けたいときがあるかと思います。

$('#要素').attr("checked", true);

なんてやったりしましたが、チェックが付きませんでした。
いろいろ検証した結果、この一文が原因とはわかったのですが、記述場所を変えるとチェックが入ったりして、わけわかめ。
checked属性は初期状態を規定するものなので、後から変えるもんじゃないってことですかね。

ですが、次のように変えるとうまくいきました。

$('#要素').prop("checked", true);

明確な理由は調べてもわかりませんでした。
ただattr()はjQueryのバージョンによって挙動が違ったりするようで、prop()の方がいい場合があるとのこと。
attr()でcheckedを操作するのは非推奨らしいです。
attr()はHTMLの属性で、prop()はJavaScriptのプロパティを対象としてるんですね。


文系プログラミングスクール
HTML5認定試験対策講座

ホームページ制作、WEB集客、
IT・WEB担当者研修について
お気軽に無料相談へお越しください。

東京都内からも近い千葉県船橋市にて!!
お伺いすることも可能です(遠方除く)


無料相談申込み