button使用で送信確認後のsubmit

このQ&Aのポイント
  • JavaScript初心者のため、buttonを使用して送信確認後にsubmitされる機能を作成したいがうまくいかない。
  • form内にsubmitという名前が付いた要素があると正しく動作しない問題があるが、該当する要素は存在しない。
  • ソースコードを確認したが問題は見つからず、原因がわからない。助言がほしい。
回答を見る
  • ベストアンサー

button使用で送信確認後のsubmit

JavaScript初心者です。 リターンを押したときsubmitされてしまうのを防ぐ為に、 送信ボタンをinput type="submit"から"button"に変更し、 confirmで送信の確認をしてOKだったときにsubmit・・・ というものを作りたいのですが、うまくいきません。 ネットで検索などするとform内にsubmitと名前がついたものがあるとうまく動かない という例をみかけましたが、それには当てはまりません。 何か問題があるのでしょうか。 もしわかるかたがいましたら、教えていただけたら助かります。 どうぞよろしくお願い致します。 (ちなみにsmartyを使っています) ■送信確認の部分  function formalert(){  if(window.confirm(送信してもよろしいですか?)){    document.getElementById('index').submit();    return true;  }else{    window.alert('canceled');    return false;  } } ■フォームタグ  <form id="index" name="index" action="index.php?=thanks#page" method="POST"> ■ボタン部分(ダミーのボタンを表示してあり必須項目を記入すると送信できるボタンを表示する。) <input type="button" class="button wide green" id="btn_dammy" onclick="chkHissu(),nameerror(),mailerror();"> <input type="button" class="button wide green" id="btn01" style="display:none" name="btn01" value="{$btn01.1}" onclick="return formalert();"> ■ノンジャバ用ボタン(関わりあるかもしれないので記載します。表示切替しています。) <noscript> <input type="submit" class="button wide green" id="btn01" name="btn01" value="{$btn01.1}" onclick="formalert()" > </noscript>

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>リターンを押したときsubmitされてしまうのを防ぐ為に、 >送信ボタンをinput type="submit"から"button"に変更し、 エンターの回避するだけならこんな感じでどうでしょう? <script> try{ document.addEventListener ('keydown',function(e){keydown(e)},true); }catch(e){ document.attachEvent('onkeydown',function(e){keydown(e)}); } function keydown(e){ var t = (e.srcElement || e.target); if(t.nodeName=="INPUT" && t.type=="text" && e.keyCode==13){ if(e.preventDefault)e.preventDefault(); else e.returnValue = false; } } </script> <form id="index" name="index" action="index.php?=thanks#page" method="POST"> <p> <input type="text" name="a"> <input type="submit" value="x" class="button wide green" id="btn_dammy"> <input type="submit" value="y" class="button wide green" id="btn01"> </p> </form> やはりバリデートするならsubmit時に内容チェックするのが妥当かと

wakamecyan
質問者

お礼

ありがとうございました! 実は、先ほど解決しまして、valueの中身が送られておらず、それによってモードを判定していたための不具合でした。 書いてくださったソースは後で、じっくり参考にさせていただきたいとおもいます! (初心者ゆえにパッと見ただけではよくわからないので・・)どうもありがとうございました!

その他の回答 (2)

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.2

開発者ツールはお使いでしょうか。 firefoxやchrome(IEもありますが使いにくい)でF12キーを押すと開発者ツールウィンドウが表示されますので、そこからコンソールを表示するとjavascriptのエラーがある場合は表示されます。

wakamecyan
質問者

お礼

はい、IEで使っております。 chromeのほうが使いやすいのですね。今度、試してみます。 どうもありがとうございました!

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 ぱっと見ておかしいと思ったのは if(window.confirm(送信してもよろしいですか?)){ ここですが、「送信してもよろしいですか?」は文字列ですので if(window.confirm("送信してもよろしいですか?")) { と、【"】にて囲む必要があります。掲載の際の転記ミスならすみません。

wakamecyan
質問者

お礼

ありがとうございました! おっしゃる通り掲載の際の転記ミスでしたが、すぐにお気づきになってすごいです。 また何かありましたらよろしくお願いします。

関連するQ&A

  • submitではなくbuttonで送信

    事情があり、submitではなくbuttonでフォームのデータを送信したいのですが、以下のように書くとbuttonでは4567が送信されません。 <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="submit" name="bbb" value="4567"> </form> ↓ <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="button" name="bbb" value="4567" onclick="submit();" > </form> submitと同じように、bbbのデータ4567も送信するにはどのように書けばよいのでしょうか? 宜しくお願いします。

  • formの送信ボタンクリック後、別ウインドウ表示

    お世話になります。 現在下記の指定でPDFを表示しています。 <INPUT type="submit" name="submit" value="送信" onClick="form.action='tcpdf/pdf.php';return true" class="button_order"> これをクリック後、別ウインドウでPDFを表示したいのですが、 onClick="form.action='tcpdf/pdf.php';return true"の部分を onClick="form.action='tcpdf/pdf_sample.php';target='_blank'"とかにしても うまくいきせん。 ボタンはもう一つあるので、 <INPUT type="submit" name="submit" value="戻る" onClick="form.action='201504_1_2.php';return true" class="button_re-selection"> 出来れば、送信ボタンのみの設定を別ウインドウ表示にしたいです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • submit()の動作について。

    <style type="text/css"> .p1{display=none;} </style> <script language="JavaScript"> function BtnNone(){ document.btn1.style.display = "none"; document.msg1.style.display = "inline"; document.frm1.submit(); } </script> </head> <form name="frm1" method="post" action="send.cgi"> <div id="btn1"> <input type="text" name="a"> <input type="submit" name="submit" value="SEND" onClick="BtnNone()"> <input type="submit" name="submit" value="BACK"> </div> <p class="p1" id="msg1">送信中</p> </form> ------------------------- 主旨が変わったので新しく質問します。 こういうソースで"SEND"をクリックするとボタンが消えて「送信中」のメッセージが表れるのですが、secd.cgiがsubmitされません。 どこが間違っているのでしょうか。 よろしくお願いいたします。

  • submit buttonの違い

    input type="submit" input type="button" button要素 の3つは何が違いますか?

  • IEでのフォームメールで、ENTERキーでのsubmitを動かさないようにしたいのですが。。

    IEでフォームメールを使用したときにENTERキーを押下するとsubmitが動いてしまうのですが、その動きを止める為に 1.送信ボタンは   <input type="button" name="submit" value=" 送信する " onClick="subm()"> で関数subm()で function subm() { document.form1.submit(); } という動きと 2.送信ボタンに<input type="button" name="submit" value=" 送信する " onClick="javascript:document.form1.submit()"> という動きの2つを試してみたのですが、どちらもエラーになってしまいました。 原因がわからないので調べているところですが、もしどなたか他の方法をご存知でしたら、教えていただけませんでしょうか?

  • onClick="this.form.submit

    ・下記のようなformがあるのですが、 onClick="this.form.submit();" disabledの意味を教えてください ・クリックしたら、このフォーム内容を送信? ・アクション先も指定していないのに、処理はどこへいくのでしょうか? ・また、disabledは? ずっと押せない? <form name="hoge" method="POST"> <input name="hoge" type="button" class="button" value="piyo" onClick="this.form.submit();" disabled> </form>

  • input type="image"の時、enterでsubmitされない方法

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=115527 で、「enterでsubmitされない方法」が記載されているのですが、 input type="image"の時、うまく反映されません。 formタグには以下のように、 <form name="form1" method="post" action="" onSubmit="return false"> 送信ボタンは以下のように設定しています。 <input type="image" src="***.gif" onClick="submit();"> ちなみにinput typeを"button""submit"にすると反映してくれますが "image"ではうまくいきません。 ご回答よろしくお願いします。

  • 複数の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 type="text/javascript"> <!-- function go() { document.getElementsByTagName("input")[3].value+="text"; } //--> </script> <form name="NAME1" action="#" method="get" onSubmit="go()"> <input type="submit" name="submit1" value="送信1" > <input type="submit" name="submit2" value="送信2"> <input type="button" name="submit3" value="送信3" onClick="go()"> <input type="text" name="text1" size="10"> </form> なのですが、送信2のsubmitを4回クリックすると以下のように表示されるのですが、どういう感じで実行されているのかわかりませんので教えていただけないでしょうか? 一応一回目はtext1=textとなるのですがテキストボックスには空になります。 2回目はtext1=textとなりテキストボックスにはtextが入ります。 3回目はtext1=texttextとなりテキストボックスには空になります。 4回目はtext1=textとなりテキストボックスは空になります。 以上よろしくお願いします。

  • 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