- ベストアンサー
チェックボックスの入力チェック
JSPでJavaScript使用しています。 no.logからテキスト(1~80までの数値がランダムに書いてある)を読みこんで、その数字でチェックボックスを作り、チェックの付いている番号を違うJSPに飛ばしています。この時どこもチェックされて無ければメッセージを表示したいのですがうまくいきません。 チェックが付いているのに、チェックされていないと認識され、メッセージが表示されてしまいます。5行目のif文が問題だと思うのですが、どうすればいいのかわかりません。アドバイス下さい。宜しく御願いします。 <script language="JavaScript"> <!-- function check(){ no = document.form1.no.value; if(no == null){ alert("チェックしてください"); return false; } } //--> </script> <form name="form1" method="post" action="test2.jsp" onSubmit="return check()"> <% String str = null; int tmpn = 0; int count = 0; BufferedReader br2 = new BufferedReader(new FileReader(getServletContext().getRealPath("/WEB-INF/no.log"))); while((str = br2.readLine()) != null) { tmpn = Integer.parseInt(str); count++; if(tmpn >= 1 && tmpn <= 9){ %> <input type="checkbox" name="no" value="<%= String.valueOf(tmpn) %>">0<%= tmpn %> <% }else{ %> <input type="checkbox" name="no" value="<%= String.valueOf(tmpn) %>"><%= tmpn %> <% if(count == 10){ out.print("<br>"); count = 0; } } } %> <input type="submit" value="送信">
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
JavaScriptでチェックボックスやラジオボタンがチェックされているかを判断するには checked の値が、trueかfalseかで判定します。 チェックボックスは複数チェックされることもあり得るので、具体的にはこんな感じでしょうか function check(){ var flg=0; for(i=0;i<document.form1.no.length;i++){ if(document.form1.no[i].checked==true) flg=1; } if(flg==0) alert("チェックしてください"); }
その他の回答 (1)
解決としましては、 5行目のnoのパラメータを確認してみると良いと思います。 出力:out.print(no); (正直言いますと、 何もない時の値がnullか分かりませんので(申し訳ない)) document.form1.no.valueの値がおかしなものであれば、それを代入する場所を見なければなりません。
補足
回答ありがとうございます。 noのパラメータは確認しようとしたのですが、out.print(no);をどこに書けばいいのでしょう? 転送先に書けばいいと思ったのですが、転送先はnoの値が無いのでエラーが出てしまい表示できません。このファイルに書いてもnoの名前で送るため表示されませんし…?
お礼
チェックで判断するのですか。 ありがとうございます。