urizakaです。
現在J-BUilderを使ってテキストボックスに入力された内容をDBに送るという
JSPの画面を作っているのですが、そこでテキストボックスでEnterキーを押すと
勝手にサーブレットに遷移されるというエラーが発生してしまいます。最初は、
<Form name="Insert" Method="POST" Action="…">
(…にはサーブレットのアドレスが入ります)
と設定しているので、それでActionに登録されたサーブレットに遷移してしまう
のだと思い、ActionをJSP上のボタンが押された時に設定されるようにしたのですが、そうするとそのページが表示される前に実行されるサーブレットに移動してしまいます。もしかすると、HTMLの設定の問題なのかもしれませんが、すみませんが
この件についてご存知の方がいらっしゃいましたら教えてください。
宜しくお願いします。
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が見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
画面を隠す・消す方法を教えて...
-
Javaプログラミングの質問にな...
-
遷移元を判定したい!
-
ASP.NET 画面遷移前の状態を保...
-
location.hrefでページ切替時の...
-
継承したFormでKeyDownイベント...
-
VC++にて、コンソールを二画面表示
-
C# ログイン画面からメイン画面...
-
IME
-
非アクティブな画面を操作する...
-
ASP.NETでWord読込→編集→テキス...
-
CSVダウンロードでウィンド...
-
Netbeans6 swingでの画面切替に...
-
Processing初心者の学生です。 ...
-
セッション切れでのリクエスト...
-
親子画面での値の受け渡し方法
-
GridViewにグループ化して表示...
-
タスクバーを選択する方法は有...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
Java-jspの画面入力値保持について
-
画面を隠す・消す方法を教えて...
-
ServletからServletへの値渡し
-
C# ログイン画面からメイン画面...
-
ASP.NET 画面遷移前の状態を保...
-
ブラウザアドレスバーからのURL...
-
javaのstrutsを使った画面遷移...
-
Javaプログラミングの質問にな...
-
画像の縦横比固定の計算方法。
-
遷移元を判定したい!
-
登録後、呼び出し元ページに戻...
-
非アクティブな画面を操作する...
-
JAVAのセッション変数の上書き...
-
location.hrefでページ切替時の...
-
アドレスバーに引数を表示させ...
-
FormのsubmitでFormの内容がnull
-
VC++にて、コンソールを二画面表示
-
ウィンドウの制御について、質...
おすすめ情報