
javascriptでチェックボックスの選択状況をチェックする方法について質問です。
チェックボックスを
<input type="checkbox" name="chk[]" value="1">
<input type="checkbox" name="chk[]" value="2">
のようにした場合、チェックボックスが1か所以上選択されているかどうかは、
var count = 0;
for (var i=0;i<document.myform.elements['chk[]'].length;i++){
if(document.myform.elements['chk[]'][i].checked){
count++;
}
}
if(count==0){
window.alert("チェックしてください!");
}
のようにすればチェック可能ですが、inputタグで
<input type="checkbox" name="chk1[]" value="1">
<input type="checkbox" name="chk1[]" value="2">
<input type="checkbox" name="chk2[]" value="A">
<input type="checkbox" name="chk2[]" value="B">
のように「name」の配列名が変化する場合はどのようにすればチェック可能でしょうか?
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
フロー的には全数チェックしないでもヒットした時点でbreakしてかまいませんね
<script>
function check(f){
var check_flg=true;
for (var i=0;i<f.length;i++){
if(f[i].type=="checkbox" && f[i].checked){
check_flg=false;
break;
}
}
if(check_flg){
window.alert("チェックしてください!");
}
}
</script>
<form>
<input type="checkbox" name="chk1[]" value="1">
<input type="checkbox" name="chk1[]" value="2">
<input type="checkbox" name="chk2[]" value="A">
<input type="checkbox" name="chk2[]" value="B">
<input type="button" value="check" onclick="check(this.form)">
</form>
No.5
- 回答日時:
多重ループで。
for( var k=0,nm,names=['chk1[]','chk2[]'];nm=names[k];k++){
for (var i=0;i<document.myform.elements[nm].length;i++){
if(document.myform.elements[nm][i].checked){
count++;
}
}
}
"chk1[]"や"chk2[]"が1つしかないときはelements[nm].lengthが0になるので、
正確にチェックできませんから、その点は調整しないとダメです。
こういう場合はgetElementsByName()の方が楽ですね。
No.4
- 回答日時:
No.3です。
すみません。訂正です。
× HTML5ならSelector Apiが使えるので、
○ Selector Apiをブラウザーがサポートしていれば、
No.3
- 回答日時:
HTML5ならSelector Apiが使えるので、
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<body>
<form id="hoge">
<input type="checkbox" name="chk1[]" value="1">
<input type="checkbox" name="chk1[]" value="2">
<input type="checkbox" name="chk2[]" value="A">
<input type="checkbox" name="chk2[]" value="B">
<button onclick="chk(this.form);return false;" >カウント</button>
</form>
<script type="text/javascript">
function chk(f){
var count =f.querySelectorAll('[type="checkbox"]:checked').length;
if(count==0) window.alert("チェックしてください!");
}
</script>
</body>
</html>
で出来る。
No.2
- 回答日時:
簡単にgetElementsByTagNameでいいと思います。
<script type="text/javascript">
<!--
function check(f){
var count = 0;
var chk = f.getElementsByTagName("INPUT");
for (var i=0;i<chk.length;i++){
if( chk[i].type == "checkbox" && chk[i].checked ){
count++;
}
}
if(!count){
window.alert("チェックしてください!");
}
return false;
}
//-->
</script>
</head>
<body>
<form name="myform" id="myform" action="#" onsubmit="return check(this)">
<p>
<input type="checkbox" name="chk1[]" value="1">
<input type="checkbox" name="chk1[]" value="2">
<input type="checkbox" name="chk2[]" value="A">
<input type="checkbox" name="chk2[]" value="B">
</p>
<p><input type="submit" value="送信"></p>
</form>
</body>
</html>
No.1
- 回答日時:
チェックボックスを<div id="hoge">でかこっておき、下記のような感じでチェックしてはどうでしょうか?
function isChecked() {
//チェックボックスの配置領域を取得
var divElement = document.getElementById('hoge');
//全てのチェックボックスを取得
var checkboxList = divElement.getElementsByTagName('input');
//チェックボックスリストの長さ
var len = checkboxList.length;
//チェックされているかのフラグ
var existsChecked = false;
//チェックされているか確認
for (var i = 0; i < len && !existsChecked; i++) {
existsChecked = checkboxList[i].checked;
}
if (!existsChecked) {
alert('ひとつもチェックされてない');
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スクリプト内でチェックボック...
-
JSP内で可変するチェックボック...
-
クリアボタンの動作について
-
複数あるチェックボックスから...
-
JQuery Mobileでチェックボック...
-
サイト内の物件を複数の検索条...
-
ボタン無しでフォーム内容送信
-
return trueとreturn falseの用...
-
ラジオボタンにタブインデック...
-
selectメニューのselectedの位...
-
プルダウン 項目が多いので先頭...
-
<input>の選択肢をプルダウンメ...
-
JAVASCRIPT
-
slickのレスポンシブ > center...
-
ブラウザの戻るボタンを押した...
-
Webブラウザにてページのりロー...
-
Selectボックスの幅を自動で広...
-
クリックごとに文字色が交互に...
-
クリックされた罫表セルの行番...
-
javascript による POST 送信時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【jsp/Java】チェックボックス...
-
背景色を変えて未入力チェック...
-
チェックが入っていなかったら...
-
オフになっているチェックボッ...
-
チェックボックスとラジオボタ...
-
チェックボックスを使って条件検索
-
確認ページからフォームページ...
-
jquery複数のcheckboxの値について
-
チェックボックスのON/OFFでVal...
-
テキストフィードを「無効にす...
-
チェックボックスのON/OFFに応...
-
特定のID(またはクラス)で括ら...
-
削除確認のアラートを出したい
-
フォームの制御について
-
チェックボックスとテキストの値
-
checkboxをクリックしてリロー...
-
チェックした数でメッセージを...
-
localStorageでのcheckbox制御
-
チェックボックスの値
-
配列のチェックボックスをjavas...
おすすめ情報