- - PR -
jspにてScriptロードのタイミング
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-12-22 15:34
お世話になっています。早速なんですが、
jsp画面にて検索画面があるんですがボタンクリック時は入力情報(Inputタグ)より 入力された文字列をキーに検索をかけて正常に動作するのですが その際、セッションの値(ID)を空のhiddenにセットして画面遷移を行って いるのですが、検索ボタンに対してマウス操作やカーソルを合わせてReturnキーでなく Inputタグ内にてReturnキーを押下時 入力情報のIDが渡らず(hiddenにセットされず)エラーとなってしまいます。 submitボタン内でスクリプトを以下のようにロードしています。 document.form.function_id.value = 'XXX001'; document.form.submit(); return false; 入力タグ内にてReturnキー押下ではスクリプトが呼ばれません。 仕様にはボタンクリック時としかありませんが、ユーザ側からしたら 確実に入力→Returnキーといった操作をしてしまうと思うので 対処したいのですが、こういった場合どのような処理をすれば 回避できるのでしょうか? どなたかご存知の方いらっしゃいましたら よろしくお願いします。 ブラウザ IE6 サーバ Tomcat | ||||
|
投稿日時: 2003-12-22 16:39
JSPについては勉強してないので、JavaScriptの問題として。
ボタン内ではなくて、そのフォームのonSubmitイベント内に、同じスクリプトを記述すると動くかもしれません。 (この場合は、return trueにする必要があったかもしれませんが) | ||||
|
投稿日時: 2003-12-22 16:41
ども、ほむらです。
完全にJavaScriptの話だと思いますけど。。。 -------- えっとつまり。 検索ボタンをクリックした時以外の動作で画面遷移をすると hiddenデータにセッションIDがはいらず、 次の画面でエラーになってしまうので 対策として inputの部分ではEnterキーを無効にしたいということでよいのでしょうか? とりあえずまず言えることは、inputタグの中でEnterを押して遷移しただけで エラーとなってしまう作りそのものに問題があると思います。 formのonsubmitイベント内部で処理する形にすれば、エラーだけは発生しないはずです。 キー入力の無効についてですがonkeyupのイベントでfalseを 返す形を取れば良いだけです。(keyCodeに対してif文で判別すればよいですよね) (一応cancelBubble?もtrueにしておいたほうが無難かも) #個人的にはせめてクッキーくらいは使用したほうがいいのではないかとも思いますけど | ||||
|
投稿日時: 2003-12-22 16:41
もんもと申します。
onsubmitを使えば解決できると思います。 inputでreturnを押しても submitボタンを押しても 送信前にonsubmitが動きます。 -------↓こんな感じ----- <html> <body> <script language="javascript"> function submitA(){ alert(form.text.value); } </script> <form id="form" onsubmit="submitA()"> <input type="text" name="text" id="text"> <input type="submit" value="submit"> </form> </body> </html> | ||||
|
投稿日時: 2003-12-22 16:47
> 仕様にはボタンクリック時としかありませんが、ユーザ側からしたら
> 確実に入力→Returnキーといった操作をしてしまうと思うので > 対処したいのですが、こういった場合どのような処理をすれば > 回避できるのでしょうか? submitを押したときinputでreturnを押したときで おんなじ動作じゃなくて inputの時の送信を防ぎたいのですね。 質問の意味を読み違えました。 | ||||
|
投稿日時: 2003-12-23 01:06
邪道かもしれませんが、
input type="submit"をやめてしまって、 <input type="button" value="send" onClick="sendNext();"> のような形だとTEXTフィールドでEnterを押しても SUBMITされることはないと思います。 | ||||
|
投稿日時: 2003-12-24 14:22
返事遅れましたが沢山のレスありがとうございました。
無事解決しました。 結局Formタグ内でonSubmitを呼んでInputのsubmit属性 ないでは何もしないという方法でうまくいきました。 Formタグ自体カスタムタグを使ってたんですが onClickの処理を丸ごと渡してやることで修正を最低限に 抑えることができ、メンテもしやすくなりました。 | ||||
1
