• ベストアンサー

INPUT上でリターンを押してもsubmitされない方法

フォームにてキーワードを入力し、検索ボタン押したときに javascriptにて以下の動作をさせたいと思っています。  ・hidden項目に特定値をセットしてsubmitをかける 以下のコードを書いたのですが、INPUT上でリターンを押すと submitされてしまいます。 ボタン以外でリターンを押した場合に何も動作させないようにするにはどのようにすればよいのでしょうか? -------------------------------------------------------------- <SCRIPT language="JavaScript"> <!-- function javasc_name(param){ document.form.PARAM.value = param document.form.submit() } //--> </SCRIPT> <form method="POST" action="cgi-bin/xxx.exe"> <input type="text" name="KEYWORD"> <input type="hidden" name="PARAM"> <input type="button" value="検索" OnClick="javasc_name(10)"> </form> --------------------------------------------------------------

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

同じ処理をしてsubmitしたいわけですよね? formのonsubmitを利用すればよいのでは?(submit実行前に処理が行われる)  <form method="POST" action="cgi-bin/xxx.exe" onsubmit="javasc_name(10)"> 一方で、ご質問の例のように固定値をPARAMにセットするだけでしたら、  <input type="hidden" name="PARAM" value="10"> のようにしておけば、スクリプトで処理する必要はなくなります。 ついでながら、ご質問の例ではスクリプトでオブジェクトが正しく指定できないので、検索ボタンを押した時にエラーになりませんか? ANo1さんのようにidを付けておいて指定するか、nameを設定しておいて  document.Form1.PARAM.value = param; などとするとかしないと、うまくいかないと思うけど・・・?

その他の回答 (1)

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

隠しフォームを利用してみてはどうでしょうか。 form#onSubmitイベントに、falseを戻してあげると、フォームからサブミットできなくなります。 -------------------- <script type="text/javascript"> <!-- function javasc_name(param){ obj_show_form = document.getElementById("id_show_form"); obj_hidden_form = document.getElementById("id_hidden_form"); obj_hidden_form.KEYWORD.value = obj_show_form.KEYWORD.value; obj_hidden_form.PARAM.value = param; obj_hidden_form.submit(); } // --> </script> </head> <body> <table border="1"> <tr> <td> <form id="id_show_form" onSubmit="return false;"> <input type="text" name="KEYWORD"> <input type="button" value="検索" OnClick="javasc_name(10)"> </form> </td> </tr> </table> </body> <form id="id_hidden_form" method="POST" action="cgi-bin/xxx.exe"> <input type="hidden" name="KEYWORD"> <input type="hidden" name="PARAM"> </form> </html>

関連するQ&A