チェックボックスの入力チェック警告について



0   名前: ぱーる : 2006/03/07 16:32
初めまして、皆さんの知恵を借りていただきたく、ここに書かせて頂きます。

全てのチェックがオンになっていた時、警告を出したいんですが、うまく出来ません・・・。
また1つでもオフになっていた場合は「送信」出来るようにしたいんです。

どなたか教えて頂けませんでしょうか?



<script Language="JavaScript">
<!--
function check(){
for(i=0;i<document.forms[0].chk.length;i++){
if(document.forms[0].chk[i].checked == true){
flg = document.forms[0].chk[i].value
}
}
if(flg=="1"){
alert("チェックが全てオンになっています!");
document.forms[0].chk.focus();
return false;
}
document.myform.submit();
return true;
}
// -->
</script>

<FORM METHOD="POST" NAME="myform" ACTION="aaa.asp">
<input type="checkbox" name="chk<%=cnt%>" VALUE="1"
checked>

<INPUT TYPE="button" VALUE="送 信" onClick="check()">

</FORM>

※ASPで作成しています。そのため、チェックボックスの数は決まっていません。
<%=cnt%>→ループ回数でカウントされる数字を示します。
 (例:ループ回数が3回の場合、chk1、chk2、chk3という風になります。)

1   名前: m035 : 2006/03/07 16:32  [URL
<script language="JavaScript" type="text/javascript">
<!--
function check(){
var cnt=0,max=0;
for(var i=1;document.forms[0]["chk"+i];i++){
if(document.forms[0]["chk"+i].type=="checkbox"){
if(document.forms[0]["chk"+i].checked)cnt++;
max++;
}
}
if(cnt==max)alert("チェックが全てオンになっています!");
else document.forms[0].submit();
}
// -->
</script>

以上のようにすればいいかと思います。
name="chkX"のcheckboxの要素数をカウントし、
オンになっている数と等しければすべてオン、
そうでなければ最低一つはオフと判別します。
また、returnの必要はありません。
もしするとしたらonsubmitに関数を指定するときです。
最後に、JavaScriptが無効の場合submitできませんがそれは仕様ですか?

2   名前: ぱーる : 2006/03/07 16:32
m035さん、丁寧に教えてくださってどうもありがとうございました。

Javascriptが無効の場合、submitできないようにしております。
おかげさまで、解決することが出来ました。
どうも有難うございました。

一覧へ戻る