- ベストアンサー
JavaScriptを使ったらサーブレットの検索が出来なくなりました…
お世話になります。 HTMLでテキストフォームに検索条件を入力し、送信ボタンを押すと 検索するサーブレットにとんで結果をJSPで表示する…という プログラムを作っています。 HTML上で、テキストフォームが未入力の場合はJavaScriptで 警告ウィンドウを表示させる様に作ったのですが、テキストフォームに 検索条件を入力した時にサーブレットにとばなくなってしまいました。 検索条件を入れて送信ボタンを押してもページは変わらず、 フォーム内容はクリアされます。この時は警告は出ません。 JavaScriptのコードを削除するとちゃんと検索結果のJSPにまで 処理が行われるのですが…。 参考までに、HTMLのソースも載せておきます。 <html> <head> <title>検索画面</title> <script language="JavaScript"> <!-- function getError() { txt=document.searchForm.search.value; if (txt=="") { alert("何も入力されていません!"); } } //--> </script> </head> <body> <center> <br><br><br><br><br><br><br><br><br><br> <b><font color=Salmon size=4>検索条件を入力して下さい。</font></b><br><br> <form name="searchForm"> <form method="post" action="../kadai7/Show" > <input type="text" name="search" size="25" maxlength="10"> <input type ="submit" value="GO!" onClick="getError()"> </form> <a href=Menu.htm>★MENUに戻る★</a><img src="HTML\poo.gif"> </center> </body> </html> どうすればちゃんと処理されるようになるのか分かりません。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
フォームのタグが2つあります。 <form name="searchForm"> と <form method="post" action="../kadai7/Show" > 以下のように一つにまとめれば良いかと。 <form name="searchForm" method="post" action="../kadai7/Show" > おそらく、以下の文のところで、オブジェクトがないとエラーが起きていたはずです。 txt=document.searchForm.search.value;
その他の回答 (1)
- kurus
- ベストアンサー率52% (12/23)
検索結果に飛んでしまうのは、Formをボタンでsubmitしているからなので、 変更の例としては、 <input type ="submit" value="GO!" onClick="getError()"> ↓ <input type ="button" value="GO!" onClick="getError()"> submitをbuttonに変更して、 JavaScript内のエラーチェックを、 if (txt=="") { alert("何も入力されていません!"); return ; // ←処理終了 } と変更し、if文を抜けた後に、 // エラーでなければFormをsubmit searchForm.submit(); とFormをサブミットする一文を追加すればよいかと思います。
お礼
ありがとうございます!!!!ご指摘通り改善しましたらちゃんと実行される様になりました♪ご丁寧にありがとうございました。助かりました!
補足
ありがとうございます!!!!ご指摘通りひとつにするとちゃんとサーブレットにとびました♪ ただ、もう一つ問題が発生しまして…。JavaScriptで警告ボックスを表示させて「OK」ボタンを押すと検索結果のサーブレットに勝手にとんでしまいます。お暇があればご教授して頂きたく思います。