- ベストアンサー
記入内容のチェックについて
- javascriptの初心者です。記入内容のチェックについて質問があります。
- 商号が空欄の場合、「確認」ボタンを押すとアラートが表示されない問題が発生しています。
- 原因が分かる方いらっしゃいますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 No1の回答でJavaScriptはそのままでと書きましたが、 document.OnForm.submit(); はいりませんね。 onSubmitという送信ボタンが押された時に呼ばれて、 戻ってきた値で本当に送信するか決定しているのであえて submit()を起こす必要がありません。
その他の回答 (2)
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 複数のチェックボックスがチェックされているかどうか調べるにはちょいとひねる必要があります。 function kakunin_click () { // チェック用カウント count = 0; // syogoチェックボックスの数分ループ処理を行う for ( i = 0; i < document.OnForm.syogo.length; i ++ ) { // チェックされている物があった場合はカウントを加算 if ( document.OnForm.syogo[i].checked ) { count ++; } } // カウントが0すなわち、チェックされているものが無かった場合は // falseを返す if ( count == 0 ) { alert ( "一つはチェックを入れて下さい。" ); return false; } } やり方はいろいろあると思いますが、こんな感じでしょうか。
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 私の環境ではアラートは上がります。が、OK押した時点でsubmitされてしまうので 以下のように変更すると良いと思います。 (return false;やフォーカスを当てる等を行っているところを見るとやりたいことは以下のようになると思います) JavaScriptはそのままで大丈夫です。 <form name="OnForm" method=post action="***.cgi"> を <form name="OnForm" method=post action="***.cgi" onSubmit="return kakunin_click();"> に変更し、また <input onclick="kakunin_click()" type="submit" value="確認"> を <input type="submit" value="確認"> にします。 これで、確認ボタンが押された時に実行され、falseが返ってきた場合はsubmitせず、trueが返ってきた時にsabmitします。
補足
早速のご回答ありがとうございました。 LancerVIIさんのおっしゃる通り、アラートはあがりますね。すみません。慌て者なので。 そしてOK押した時点でsubmitされてしまう箇所を修正して頂き感謝いたします。確かにアラートは出るもの次の画面に行ってました。アラートが出ないことだけで頭が一杯で気付きませんでした。教えていただいた通りに修正してうまくいきました。 もう一つ問題にぶつかったのですが、良ければ教えていただけますか? 今度はチェックボックスのアラートなのですがどれにもチェックが入ってない時にアラートが出るようにしたいのですが、このままではチェックなしでもアラートが出ないみたいです。お願いいたします。 <html> <head> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <Script Language="JavaScript" src="common.js"></Script> <Script Language="JavaScript"> <!-- function kakunin_click(){ //入力チェック if(document.OnForm.syogo.value == ""){ //必須入力 alert("商号に入力がありません。"); document.OnForm.syogo.focus(); return false; } document.OnForm.submit(); return true; } //--> </Script> <title>契約</title></head> <body> <<form name="OnForm" method=post action="***.cgi" onSubmit="return kakunin_click();"> <center> <TABLE border="0" cellspacing="1"> <tr> <TD>商号</TD> <TD> <INPUT type="checkbox" name="syogo" value="A" size="40">A<BR> <INPUT type="checkbox" name="syogo" value="B" size="40">B<BR> <INPUT type="checkbox" name="syogo" value="C" size="40">C </TD> </tr> </TABLE> </center> <div align="center"> <center> <table border="0"> <tr> <td width="100%"> <input type="submit" value="確認">input type="reset" value="やり直し"></td> </tr> </table> </center> </div> </form> </body> </html>
お礼
数々のアドバイスどうもありがとうございました。 お陰で満足のいくしかけができました! このサイトは本当に親切な方が多くて、回答も早くいただけで重宝しています。 本当に重ねて感謝いたします。