jQueryでcheckboxがチェック済みか調べる



jQuery1.7から.attrの仕様がついにかわったようでチェックボックスがチェック済みが.attrだと取得できなくなっていました。
.attrのかわりに.propが追加されていましたのでそちらを使います。

フォーム例

<form id="checked_test" action="hoge.php" method="post">
<input type="checkbox" name="hoge1" id="hogecheck1" value="hogehoge">
<input type="submit" value="送信">
</form>

スクリプト部分

// submitしたときにチェックされているかを.propで調べる
$('#checked_test').submit(function() {
  if ( $("#hogecheck").prop('checked') == false ) {
    alert("チェックボックスが入力されていません");
    return false;
  }
});

何かしらの操作をした後でチェックをつけたい場合

Hoge要素をクリックするとチェックがつく例

$("#hoge").click(function() {
  $("#hogecheck").prop('checked', true);
});

propはDOMプロパティでattrはHTML属性を操作する内容に変更になっていたようです。
仕様がかわったことに気がつかないで1時間ぐらい悩んでいました。orz…



コメントを残す