jQueryでcheckboxのチェック判定

 チェックボックスがチェックされているかどうかを判定するコードがなかなかわからなくて、いろいろ探しているとeachでもってループ的にやることがわかりました。肝はデフォルトでfalseを返しておくことと、チェックの状態がtureとfalseで取得できるというところでしょうか。

jQueryのコード
var check_flag = false;
var chbx = $("input:checkbox[name^='checkbox_name']");
$.each(chbx,function(i) {
    if ($(this).attr('checked')==true) {
        check_flag = true;
        return false;
    }
});
if (!check_flag) {
    $("#checkbox_error").text("チェックされていません。");
    $("#checkbox_error").slideDown();
} else {
    $("#checkbox_error").slideUp();
}
xhtmlソース
チェック<input id="checkbox_id" name="checkbox_name" value="" type="checkbox" />
<p id="checkbox_error"></p>

  掲示板でatさんご指摘の通り、単一のチェックボックスだったらこれで全然いけました。eachなんか使わなくても.attrでtrueかfalseを取得することができます。
$(function(){
        var chbx = $("#checkbox_id").attr('checked');
    if (!chbx) {
        $("#checkbox_error").text("チェックされていません。");
        $("#checkbox_error").slideDown();
    } else {
        $("#checkbox_error").slideUp();
    }
})






プロフィール



  • Name :: 山上オサム ♂(37)
  • Hobby :: 武術
  • Work :: Web Designer