• 締切済み

form記入中にenterで送信されてしまわないようにするには?

formタグとISP支給のcgiを使ってメールフォームをアップしています。ユーザー(フォームを記入している人)が記入中にenterを押すと記入途中の内容が送信されてしまうので、「送信」ボタンをクリックしない限り送信できないようにしたいのですが、何かよい方法はないでしょうか。

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

みんなの回答

  • godakaz
  • ベストアンサー率72% (16/22)
回答No.3

やってみりゃ判るけど、コンファームの戻り値がfalseであれば、何もしません。 モトのフォームの内容が表示されたままです。 return が返ってくるまでは、フォームのサブミット動作に入りませんのでご安心ください。 同様に、input type=reset などのフォーム内容を消去するようなボタンを設置してあるときに、以下のように適用させるのも吉。 <form onReset="return confirm('記入内容を破棄しても宜しいですか?');" など。

  • godakaz
  • ベストアンサー率72% (16/22)
回答No.2

こういう「確認ダイアログ方式」も、結構いいですよ。 (実際に使用されるときは、action=の中身はフォームメール用のCGIを指定してくださいね) <form action="javascript:alert('送信しました');" onSubmit="return confirm('送信しても良いですか');"> <input type="text"> <input type="submit" value="送信"> </form>

magnum
質問者

補足

早速のご回答ありがとうございます。 この方法だと、フォーム上でユーザーがenterを押してしまうと、一度フォームのページから抜けてしまうと思います。もう一度フォームに戻ったときに、記入途中の内容が保持されているかが心配です。 これだと、今やろうとしていることとは、ちょっとそぐわないような気がします。。。 でも、たいへん参考になりましたので、何かの折には利用してみたいと思います。 ありがとうございました。

noname#3345
noname#3345
回答No.1

<INPUT type="submit">をやめて<INPUT type="button">にすればいいと思います。 確か、enterで動作するのはsubmitボタンなはずですので。 <INPUT type="button" onClick="this.form.submit();"> というようにすれば、クリックしたときのみsubmitの動作をする、という風に制限できます。

magnum
質問者

補足

早速のご回答ありがとうございます。 ブラウザ上での「送信ボタン」は単なるボタンであり、これをクリックしたときのみ送信のアクションが発生すると考えればよいのですね。 「onClick=」アトリビュートと「this.form.submit()」の引数は初めて見るのですが、バージョンの古いブラウザでも動作するのでしょうか?

関連するQ&A

  • Enterキーを押しても送信しないようにする

    ユーザーリクエストを受付けるHTMLフォームに 例えばテキストボックスがいくつかあって送信ボタンをクリックするとCGIにパラメータが送信されるという時に、テキストボックスの1つめにデータを入れた後、2つめ以降まだ入力してないのにEnterキーを思わず押してしまって送信されることってありますよね。 Enterキーを押しても送信されないようにすることって出来るのですか。よく、空白のテキストボックスが残っていると、「○○を入力してもう一度送信ボタンをクリックしてください」というエラーメッセージを表示して戻す。という手がありますが、テキストボックスが空白でも、データ送信はできる様にしたいのです。そうするとEnterキーを殺すしか方法が思いつかないのですが・・・

    • ベストアンサー
    • Perl
  • ENTERキー押下でフォームを送信したいのに・・・

    PHPとHTMLでフォームをいくつか作り、画像タイプの送信ボタンを押下すると送信されるようにしています。ところが、IEの場合、ENTERキー押下で送信できる(下記のPHPの制御文がtrueになる)ものと、できないものがあります。ボタンをクリックすればいずれも送信できます。また、FirefoxではどのケースでもEnterキー押下で送信できます。送信ボタンはどのフォームでもひとつです。 何がどういう場合に、IEでEnterで送信できないのでしょうか? ○HTML側 <form...> ... <input type="image" name="submit" ...> </form> ○PHP側 if(isset($_POST['submit_x']) { ... }

    • 締切済み
    • PHP
  • formの送信について

    いつもお世話になっております。 今回はFORMの送信についてお聞きします。 htmlでフォームの内容を送るには 1、<form action="xxx.cgi"> <input type="submit">  として送信 2、prototype.js等を使って function send() { var str = Form.serialize('form1'); new Ajax.Request ( "xxx.cgi", { "method": "post", "parameters": str, onSuccess: function() } ); } <form action="" id="form1"> <button onclick="send()"> があるとわかったのですが、両者の違いがわかりません。 2番だと非同期にもできるということはわかるのですが、 そのほかの違いをご教授願います。

  • フォーム入力中にEnterで送信しなくするには

    最近、ユーザさんがフォームを入力中、勢い余ってEnterを叩いてしまい、入力途中のものが送られてきてしまうことが多々あります。会社のシステムなのですが、Htmlで改善する方法がありましたらぜひ教えてください。cgi側で対応してもいいのですが、手間がかかりそうなので・・・よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • 2つ目の送信フォーム

    皆様にお聞きし無事、送信フォームを自分のHPに付けることができました。 のですが、2つ目3つ目と作ろうと思ったら思うようにうまくいきません。 僕のサーバーはcgi-binというフォルダを置かなくてそのままpublic_htmlに 設置O.Kだったのでpublic_htmlに 1.form1.html 2.form1.cgi 3.thanks.html(送信後に表示されるページ) 4.tempディレクトリ を置いていました。 そこに新しくform2.htmlとform2.cgiを置いたのですが tempディレクトリは名前が同じなのでアップしても上書きになってしまうと思い なにもふれなかったせいか、form2.htmlを開き フォームに記入し送信したらエラー警告ページが表示されます。 (送信後表示されるページはthanks.htmlでform1と同じです。) 2つ目を設置するにはどうすればよいのでしょうか? 教えてください、お願いします。。 ちなみに、1つ目のフォームは順調に作動しています。 WIN98,OE

    • ベストアンサー
    • CGI
  • formでENTERとSUBMITボタンを押した場合のパラメータの分け方

    formでenterキーを押して内容を送信した場合とSUBMITボタンを押して内容を送信した場合でパラメータによって場合わけしたいのですがどのようにすればよいでしょうか? SUBMITボタンをクリックした場合は以下のように記述をすればbを使うことができるのですが <input id="a" type="submit" name="b" value="ボタン" /> ENTER用のパラメータをつけるやり方がわかりません。 回答よろしくお願いいたします。

  • メール送信フォーム Enterを押しても送信されないように

    http://www.tohoho-web.com/cgi/wwwmail.htm このメール送信フォームだと、 名前を入れ終わった後にEnterを押すとメールアドレスが 入力されてなくても送信されてしまいます。 これを回避する方法をお願いします。

    • ベストアンサー
    • CGI
  • リンク元のURLをメールで送信したいのですが

    リンク元のURLをメールで送信したいのですが 複数のページから1つのメールフォームを兼用しているのですが、その際、元のページのURLを一緒に送信したいのですがうまく出来ません。 使っているメールフォームはform_mailer.cgiです。 ●全体の流れ 【1】各商品ページ(HTML) ボタンをクリックでメールフォームへ     ↓ 【2】メールフォーム(HTML) 項目を入力後、送信ボタンをクリック     ↓ 【3】確認画面(form_mailer.cgi) 送信ボタンをクリック     ↓ 【4】メール送信 ・【1】のページのURLを【4】で送信したいのです。 ・【2】と【3】の時にはできれば「hidden」等で非表示にしておきたいです。 いろいろ調べてみたのですが、JavaScriptの「document.write(document.referrer);」が使えるのかと思ったのですが、それを【2】以降どうCGIに渡せばいいのかがわかりません。 もしくは、他に手段があるのかもしれませんが…。 どなたか、方法がわかりましたらご教授願います。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 送信確認メッセージ及びenterで送信させない

    いつもお世話になっております。 現在メールフォームを使用していていますが、下記のようにしたいと思います。 1、enterでも送信されないようにする。(送信ボタンを押した時のみ送信したい) 2、送信ボタンを押した時に確認メッセージを表示してからOKかキャンセルを選択していただく。 色々なサイトを参考に 1、enterでも送信されないようにする <form action="***" method="***" onsubmit="return false;"> 入力欄1:<input type="text" name="st1" value=""><br> 入力欄2:<input type="text" name="st2" value=""><br> <input type="button" value="送信する" onclick="submit();"> </form> 2、送信ボタンを押した時に確認メッセージを表示してからOKかキャンセルを選択していただく。 <script type="text/javascript"> <!-- function check(){ if(window.confirm('送信してよろしいですか?')){ // 確認ダイアログを表示 return true; // 「OK」時は送信を実行 } else{ // 「キャンセル」時の処理 window.alert('キャンセルされました'); // 警告ダイアログを表示 return false; // 送信を中止 } } // --> </script> </head> <body> <form method="POST" action="example.cgi" onSubmit="return check()"> <p>お名前:<input type="text" name="field1" size="25"></p> <p><input type="submit" value="送信"></p> </form> で試しました。片方だけなら作用しますが、両方を組み合わせると1の「enterでも送信されないようにする」のみだけ作用します。 私はjavaを初めて使用するため全く知識がございません。 この二つを併用することは不可能なのでしょうか? 参考させていただきましたサイト http://okwave.jp/qa/q778438.html http://okwave.jp/qa/q867257.html http://www.tohoho-web.com/lng/199911/99110147.htm http://allabout.co.jp/gm/gc/23972/2/ http://www.koikikukan.com/archives/2012/01/18-022222.php あまり難しいようでしたらどちらか一方を優先させたいと思います。 ご指導のほどよろしくお願いします。

    • ベストアンサー
    • Java
  • formデータ送信時にフレームページとフレーム名を指定する方法

    お世話になっております。 質問ですが、メールフォームのformデータを送信する際、プレビュー機能や送信完了メッセージがでます。 普通はformタグでaction="http://~/abc.cgi"とすれば送信ボタンを押すとabc.cgiが開いて確認画面等がでるのですが、私の場合は フレームページではない送信する内容を書くところ から↓ フレームページである123.htmlの『1』というフレーム名のところにプレビューや送信完了メッセージをだしたいのです。(要するにフレーム名『1』にabc.cgiを表示させたい) いろいろ記述法を探したのですがいまいちわかりません^^; どなたか具体的にご伝授いただければ幸いです。 ちなみにmethodはpostです。 よろしくお願いいたします。m(_ _)m

専門家に質問してみよう