• ベストアンサー

チェックボックスの入力チェック

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="送信">

質問者が選んだベストアンサー

  • ベストアンサー
noname#24096
noname#24096
回答No.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("チェックしてください"); }

参考URL:
http://www.openspc2.org/JavaScript/ref/form/checked.htm
bell_xxx
質問者

お礼

チェックで判断するのですか。 ありがとうございます。

その他の回答 (1)

noname#53955
noname#53955
回答No.1

解決としましては、 5行目のnoのパラメータを確認してみると良いと思います。 出力:out.print(no); (正直言いますと、 何もない時の値がnullか分かりませんので(申し訳ない)) document.form1.no.valueの値がおかしなものであれば、それを代入する場所を見なければなりません。

bell_xxx
質問者

補足

回答ありがとうございます。 noのパラメータは確認しようとしたのですが、out.print(no);をどこに書けばいいのでしょう? 転送先に書けばいいと思ったのですが、転送先はnoの値が無いのでエラーが出てしまい表示できません。このファイルに書いてもnoの名前で送るため表示されませんし…?

関連するQ&A