電子書籍の厳選無料作品が豊富!

お世話になります。

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>

どうすればちゃんと処理されるようになるのか分かりません。
宜しくお願いします。

A 回答 (2件)

フォームのタグが2つあります。



<form name="searchForm">

<form method="post" action="../kadai7/Show" >

以下のように一つにまとめれば良いかと。
<form name="searchForm" method="post" action="../kadai7/Show" >

おそらく、以下の文のところで、オブジェクトがないとエラーが起きていたはずです。
txt=document.searchForm.search.value;

この回答への補足

ありがとうございます!!!!ご指摘通りひとつにするとちゃんとサーブレットにとびました♪
ただ、もう一つ問題が発生しまして…。JavaScriptで警告ボックスを表示させて「OK」ボタンを押すと検索結果のサーブレットに勝手にとんでしまいます。お暇があればご教授して頂きたく思います。

補足日時:2006/06/09 13:04
    • good
    • 0

検索結果に飛んでしまうのは、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をサブミットする一文を追加すればよいかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます!!!!ご指摘通り改善しましたらちゃんと実行される様になりました♪ご丁寧にありがとうございました。助かりました!

お礼日時:2006/06/09 16:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!