- ベストアンサー
送信ボタンを押した際に、チェック項目の数をカウント
<input type="checkbox" name="q21" value="問2の項目1"> <input type="checkbox" name="q22" value="問2の項目2"> <input type="checkbox" name="q23" value="問2の項目3"> <input type="checkbox" name="q24" value="問2の項目4"> チェックボックスのNAMEやVALUEが上記のような場合、 送信時に問2のチェックされている数が3つ未満なら「ダイアログで選択数が足りない」という表示を出したいのですが、googleでさがしてみてもこういうパターンのものが見つかりませんでした。 良い方法があれば、アドバイスお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例えば、こんな感じでやればいいと思います。 -------------------------------------------------- <script type="text/javascript"> <!-- function check(){ var undefined; var count=0; for(var i=1;undefined != document.Q["q2"+i];i++){ if(document.Q["q2"+i].checked) count++; } if(count<3){ alert("チェックは3つ以上付けてください"); return false; } else return true; } //--> </script> … <form name="Q" action="XXX.CGI" onsubmit="return check()"> <input type="checkbox" name="q21" value="問2の項目1"> <input type="checkbox" name="q22" value="問2の項目2"> <input type="checkbox" name="q23" value="問2の項目3"> <input type="checkbox" name="q24" value="問2の項目4"> <input type="submit" value="送信"> </form>
その他の回答 (1)
- nbys_goo
- ベストアンサー率16% (53/326)
送信時にjavascriptでチェックしてはどうでしょう。 q21~q24のチェックされてるものをカウントして3つ未満ならエラーにするようにすれば、いいと思います。
補足
アドバイスありがとうございます。 送信ボタンを押す ↓ チェックボックスのチェック数を数える ↓ もし(チェック数<3)の場合はダイアログでエラー表示 ↓ 送信 って感じなんでしょうけどif文の方はわかるんですが、 「q21~q24」のような異なったNAMEのチェック数を数える場合、どういったプログラム文になるのでしょうか?
お礼
回答ありがとうございます。 大変参考になりました。