• ベストアンサー

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> --------------------------------------------------------------

  • HTML
  • 回答数2
  • ありがとう数0

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

  • ベストアンサー
  • 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

  • 複数のsubmitボタンで押されたボタンを取得する方法

    form内の、submitボタンの値が拾えません。 1つだけsubmitボタンを設置すると値が拾えますが、 2つ以上submitボタンを設置すると拾えません。 仕様上、無理なのでしょうか? <SCRIPT language="JavaScript"> function move_post(){ alert(document.frmMvPost.btn.value); } </SCRIPT> <FORM name="frmMvPost" action="" method="post" onsubmit="return move_post()"> <INPUT type="submit" name="btn" value="テスト1"> <INPUT type="submit" name="btn" value="テスト2"> <INPUT type="submit" name="btn" value="テスト3"> </form>

  • submit()で送れない

    <SCRIPT language="JavaScript"> <!-- function send55() { document.frm.aaa.value = "送る内容"; document.frm.submit(); } //--> </SCRIPT> <A href="JavaScript:void(0)" onclick="send55()">ここをクリック</A> <FORM name="frm" method="POST" action="test.php"> <input type="hidden" name="aaa"> </FORM> 上記内容で「ここをクリック」をクリックすると、aaaには"送る内容"がセットされるのですが、続くsubmit()が動作しないようです。 試しに<FORM>タグ内に以下の1行 <INPUT type="submit" name="test" value="送信テスト" > を追加して「送信テスト」ボタンをクリックすると正しくtest.phpが開きます。 使い方を間違っていますでしょうか? ご指導よろしくお願いします。

  • formのボタンをsubmitしたときにアラート

    javascript で、formのボタンをsubmitしたときに アラートが出るようにしたいと思います。 下記のように作ってみましたが、うまく動きません。 どのようにすれば動くでしょうか? ご教示いただきたくお願いいたします。 <script type="text/javascript"> function(){ $('form1').submit(function(){ $.ajax({ type: 'POST', data: postData, url: 'buy.php', success: function(data){alert("購入できました");} error: function(){alert('購入できませんでした。再度お試しください');} }); return false; }); } </script> <form name="form1" id="form1" method="POST" name="form1" value="form1" action="buy.php"> <input type="hidden" name="id" value="100" /> <input type="hidden" name="name" value="高橋" /> <input type="submit" value="Save"> <form/>

  • submitの分岐

    同じform内に、ラジオボタンとサブミットボタンを配置してあります。 ラジオボタンを押された時は自分をsubmit、ボタンが押された時にはsubmitして次の画面へ遷移したいのですが、分岐の方法がわかりません。 <form action="next.htm" method="post"> とやってしまうと、ラジオボタンが押された時にもnext.htmへ遷移してしまいます。 苦慮の結果JavaScriptで、ボタンを押された時にhiddenにフラグをたてておいて、 そのフラグに値が入っていれば <form method="post">、 入っていなければ<form action="next.htm" method="post">、 という分岐処理を書いたのですが、やはり両方next.htm画面へ遷移してしまいます。 お知恵を貸していただけないでしょうか。 ちなみに下記のようなスクリプトを書きました。 ----------------------------------------------- <script language="JavaScript1.2"> <!-- function chk_sub{ document.form.hdnChkFlg.value="1"; window.document.form.submit(); } //--> </script> <if form.hdnChkFlg="1"> <form method="post"> <else> <form action="next.htm" method="post"> <end if> <input type="radio" name="chkSitei" checked onclick="return chk_sub value="1">aaa</input> <input type="hidden" name="hdnChkFlg" value=""> <input type="submit" value="次へ"> </form> 宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • Chromeで複数submit

    現在1つのボタンで2つのフォームをsubmitしているのですがGoogleChromeだけ1正常に動作せず困っております。 下記スクリプトでIE、FireFoxはnform、nform2ともにsubmitされるのですがChromeのみnform2(後に記述したほう)のみ実行されます。 解決方法はありますでしょうか? 宜しくお願い致します。 <script language="javascript"><!-- function send() { if(window.confirm('設定してよろしいですか?')){ document.nform.submit(); document.nform2.submit(); }else{   alert('キャンセルしました'); } } //--></script> <form name="nform" action="a.php" target="blank" method="POST"> <input type="hidden" value="a" name="1"> </form> <form name="nform2" action="b.php" method="POST"> <input type="hidden" value="a" name="1"> </form> <button onClick="send()">ボタン</button>

  • フォームの値をjavascriptでsubmitする時に

    <form name="myForm" action="" id="myID" onsubmit="return false;"> <input type="hidden" name="v1" value="" /> </form> というようなフォームがあり、 <script language="javascript"> function submitTest(v) { document.myForm.v1.value = v; document.myForm.submit(); } </script> のような形でsubmitする際に、<form>の属性で指定したid="myID"って javascript関数内でどのようにすれば渡せるのでしょうか?? 何か質問がおかしかったらご指摘願います。

  • formタグのvalue="" に代入される文字列をsubmitボタン

    formタグのvalue="" に代入される文字列をsubmitボタンが押されたときに Javascriptでlocation.hrefで現在のURLを判定して 条件分岐してformタグのvalue="" に "A" や "B" といった 文字列を代入したいと考えてます。 現在下記のタグを書いているのですが、submitボタンが押されたときに パラメータにvalueの値が代入されず、困ってます。。。 タグの記述に間違いがあると思うのですが、ご指摘いただけないでしょうか? ■現在のタグ 1.Javascript側 <script> <!-- function check() { if(location.href.startsWith('http://www.AAA.com/AAA/')){ document.exp.categoryII.value = "A"; }else if(location.href.startsWith('http://www.AAA.com/BBB/')){ document.exp.categoryII.value = "B"; } return true; } // --> </script> 2.formタグ側 <form onsubmit="return check()" name="exp" action=""> <input name="gen" value="6" type="hidden" /> <input name="categoryII" value="" type="hidden" /> <input name="button" value="検索" type="submit" /> </form> よろしくお願い致します。

  • submitボタンを二つ用意したい

    textに入力したものを二つのsubmitボタンで共用できるようにしたいと考えています。 作ってみたのですが、思ったように動かずに困っています。 ↓をどのように修正すれば動くでしょうか。 よろしくおねがいします。 <html> <body> <form name="hoge" action="hoge1.php" method="post"> <div class="ok_left"><input name="kw" value="" /> <script type="text/javascript"> <!-- function pushSubmit (val) { with(document.hoge){ if(val=='2'){ action = 'http://hoge.jp/hoge2.php'; } submit(); } } --> </script> <a href="javascript:pushSubmit('1');"><input name="submit1" type="submit" value="1"/></a> <a href="javascript:pushSubmit('2');"><input name="submit2" type="submit" value="2"/></a> </form> </body> </html>

    • ベストアンサー
    • HTML
  • formの中で別のactionをもったsubmitボタンの設置。

    formの中で別のactionをもったsubmitボタンの設置。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>sample</title> <script language="JavaScript" type="text/javascript"> <!-- //<クリックした時に実行される関数> //*** 確認画面A function func1(form){ document.form1.check[].value =form.check[].value; document.form1.submit(); } //*** 確認画面B function func2(form){ document.form2.check[].value =form.check[].value; document.form2.submit(); } //--> </script> </head> <body class="index"> <form enctype="multipart/form-data"> <input type="check" name="test[]" value="0">0 <input type="check" name="test[]" value="1">1 <input type="check" name="test[]" value="2">2 <input type="button" onClick="func2(this.form)" value="確認B"> <input type="button" onClick="func1(this.form)" value="確認A"> </form> <!-- sousin.php画面へ --> <form method="post" name="form1" action="sousin.php" enctype="multipart/form-data"> <input type="hidden" name="check[]"> </form> <!--- text.php画面へ ---> <form method="post" name="form2" action="text.php" enctype="multipart/form-data"> <input type="hidden" name="check[]"> </form> </body> </html> 上記のように記述し、フォームの中に別のactionをもったsubmitボタンを設置しました。 チェックボックスで何と何がチェックされたかを渡したいのですが、エラーが発生します。 おそらくjavascript内の構文でcheck[]と記述してるからだと思いますが、 どのようにすれば受け渡すことができるのでしょうか。 checkのみにすると1つの値しか渡せません。

    • ベストアンサー
    • HTML
  • JAVASCRIPTでINPUT

    HTMLとJAVASCRIPTとJSPを使ってシステム構築をしております。 --------------- <html> <head> <SCRIPT Language="JavaScript"> <!-- function send() { alert("<input type=text name=name2>"); } // --> </SCRIPT> </head> <body> <form onSubmit="send(); return false;"> <input type=text name=name1> <input type=submit> </form> </body> </html> --------------- 上記のコードでやりたいことは、 submitボタンが押されたときにJAVASCRIPTを呼び出し JAVASCRIPT上で文字を入力し次画面へ送信するような機能を作りたいと思っているのですが、本を見てもなかなか載っていません。 もしかしたらJAVASCRIPTだけではできないかもしれません。 JSPまたはPHPで出来る機能でも良いので教えてください。

専門家に質問してみよう