プロが教えるわが家の防犯対策術!

CheckBoxの入力チェックについて
CheckBoxの数は可変です。
全て未チェックのときにalertを表示したいです。
今はチェックしてもalertが表示されてしまいます。
よろしくお願いします。

<html>
<head>
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>チェックボックス入力チェック</title>
<SCRIPT TYPE="text/javascript">
<!--
function item_check()
{
count = 0;
for (i=0;i<=document.form1.elements['item[]'][i].length;i++){
if(document.form1.elements['item[]'][i].checked){
count++;
}
}
if(count==0){
alert("項目を選択してください。");
return(false);
}

return(true);
}
-->
</SCRIPT>
</head>
<body>
<form name="form1" method="POST" action="test.htm" onSubmit="return item_check()">
<p><input type="checkbox" name="item[]" value="1">項目1</p>
<p><input type="checkbox" name="item[]" value="2">項目2</p>
<p><input type="checkbox" name="item[]" value="3">項目3</p>
<p><input type="checkbox" name="item[]" value="4">項目4</p>
<p><input type="checkbox" name="item[]" value="5">項目5</p>
<input type="submit" name="kakunin" value="確認">
</form>
</body>
</html>

A 回答 (2件)

function item_check( form )


{
// var を省略するとグローバル変数になります。
var count = 0;
// 毎回 document からたどるのは非効率的。ついでに匿名性を持たせるために form を引数で渡すように変更。
var eles = form.elements[ 'item[]' ];
for (var i=0;i < eles.length; i++){ // [i] と = が余分。原因はここ
if(eles[i].checked){
count++;
}
}
if(count==0){
alert("項目を選択してください。");
return(false);
}

return(true);
}

<form name="form1" method="POST" action="test.htm" onSubmit="return item_check(this);">
    • good
    • 0

こんなかんじでどうでしょ?



<script>
function item_check(f){
var flg=false;
for (var i=0;i<f.length;i++){
if(f[i].name=="item[]" && f[i].checked){
flg=true;
break;
}
}
if(!flg) alert("項目を選択してください。");
return flg;
}
</script>
<form onSubmit="return item_check(this)">
<p><input type="checkbox" name="item[]" value="1">項目1</p>
<p><input type="checkbox" name="item[]" value="2">項目2</p>
<p><input type="checkbox" name="item[]" value="3">項目3</p>
<p><input type="checkbox" name="item[]" value="4">項目4</p>
<p><input type="checkbox" name="item[]" value="5">項目5</p>
<input type="submit" name="kakunin" value="確認">
</form>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!