• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テキストボックスから勝手に画面遷移される。)

テキストボックスから勝手に画面遷移される

このQ&Aのポイント
  • J-BUilderを使って作成したテキストボックスからEnterキーを押すと勝手にサーブレットに遷移してしまうエラーが発生しています。
  • 最初は<Form name="Insert" Method="POST" Action="…">と設定していたが、ActionをJSP上のボタンが押された時に設定されるようにしたところ、そのページが表示される前に実行されるサーブレットに移動してしまいます。
  • HTMLの設定の問題かもしれませんが、ご存知の方がいらっしゃいましたら教えてください。

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

  • ベストアンサー
noname#3852
noname#3852
回答No.1

urizakaさん、こんにちは。  かかれている内容を見る限り、HTMLのフォームの問題ですね。jspで生成されるhtmlソースを、拡張子htmlで保存してそのhtmlファイルをブラウズしていただければ、jspの問題ではないとおわかりいただけると思います。  テキストフィールドでEnterを押すと、submitしてしまうのは、インターネットエクスプローラだけでなく、ネットスケープ4.7、6でも起きてしまうようですね。  解決方法の1つとして、JavaScript(Javaではないです)を利用することを提案します。  前置きとしてJavaScriptが有効なブラウザで、「ボタンを押す」、「submitしようとする」など何かしら動作するとイベントが発生します。イベントが発生したとき、そのフォーム部品に適切なイベントハンドラが設定されていると、そのイベントハンドラの内容が実行されます。といっても、JavaScriptをご存知ない場合、わかりませんね。  formからsubmitするとき、onsubmitハンドラが実行されます。このハンドラからfalseが戻されるとsubmitされず、画面も遷移しません。また、ボタンが押されるとonclickハンドラが実行されます。  以上を踏まえて、方針を。 まず変数を用意します。この変数の初期値はfalseとします。submitボタンが押されたら、その変数の値をtrueに変更します。フォームのonsubmitハンドラでその変数の値を戻します。 こうすることで、submitボタンが押された場合は、変数の値がtrueなのでsubmitされます。 一方、テキストフィールドでEnterが押された場合、変数の値がfalseのままなので、submitされず、画面遷移されません。 サンプルとして、以下に記します。後はurizakaさんが作成するシステムにあわせてカスタマイズできるようがんばってください。 <html> <body> <script laguage="javascript"> var submitIsOk = false ; </script> <form action="XXX" onsubmit="return submitIsOk"> <input type="text" size="20" /> <input type="submit" value="submitする" onclick="submitIsOk=true" /> </form> </body> </html>

関連するQ&A