チェックボックス配列のIDを使って、チェックボックス配列のチェックボックスがチェックされているかどうかを確認するにはどうしたらいいですか?
次のようなコードを使っていますが、idに関係なく常にチェックされたチェックボックスの数が返されます。
``js function isCheckedById(id) {. alert(id); var checked = $("input[@id=" + id + "]:checked").length; alert(checked);
if (checked == 0) {
falseを返します。
} else {
trueを返します。
}
}
$('#' + id).is(":checked")
チェックボックスがチェックされている場合に取得します。
同じ名前のチェックボックスの配列では、チェックされているもののリストを次のようにして得ることができます。
var $boxes = $('input[name=thename]:checked');
そして、それらをループしてチェックされているものを確認するには、次のようにします。
$boxes.each(function(){
// Do stuff here with this
});
チェックされている数を調べるには、次のようにします。
$boxes.length;
IDはドキュメント内で一意でなければなりません。つまり、これはすべきではないということです。
<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />
代わりに、IDをドロップしてから、名前や含まれる要素で選択します。
<fieldset id="checkArray">
<input type="checkbox" name="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>
そして、今度はjQueryです。
var atLeastOneIsChecked = $('#checkArray:checkbox:checked').length > 0;
//there should be no space between identifier and selector
// or, without the container:
var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;
$('#checkbox').is(':checked');
上記のコードは、チェックボックスがチェックされていればtrueを、チェックされていなければfalseを返します。