個人開発者をサポートするQ&Aツール

個人開発者・フリーランスエンジニア・リモートプログラマの
問題解決をサポートするサービスです

登録不要ですぐに質問を開始できます

フォーム内で表示する確認ダイアログで「はい」を押しても送信されない

解決済 無し 1件

以下のようなコードでフォームから送信する処理を書いています。

送信前に一度確認ダイアログを表示させるため、onclick属性でJavascriptの関数(submit_confirm)を呼び出しています。

しかし、なぜかダイアログで「はい」を選択してもフォームが送信されません。
jsの関数内に設置してあるログは正常に出力されていますので、jsの呼び出しに問題はありません。

原因はフォームの送信処理側にあると予想していますが、いまいちその箇所が特定ができません。

よろしくお願いします。

html
<form name="form" id="form" method="POST">
  <input type="text">
  <button type="button" onclick="return submit_click();">送信</button>
</form>

javascript
<script>
  function submit_confirm(){
    console.log('submit_confirm()');
    if(confirm("送信します。よろしいですか?")){
      return true;
    }
    else{
      return false;
    }
  }
</script>
html javascript
ベストアンサーに選ばれた回答
フォームをsubmit(送信)する記述が無いからでしょう。

buttonのtypeを"submit"に変更するか、javascript内でsubmitする処理を追加してください

<form name="form" id="form" method="POST">
  <input type="text">
  <!-- submitに変更 -->
  <button type="submit" onclick="return submit_click();">送信</button>
</form>

buttonのtypeは変更せずに、javascript内で送信する場合はこんな感じです
<script>
  function submit_confirm(){
    if(confirm("送信します。よろしいですか?")){
        $('#form')[0].submit();
    }
  }
</script>

回答の編集

この質問はすでに終了しているため変更できません

typeをsubmitに変更することで解決しました!ありがとうございます

名もなきエンジニアのプロフィール画像 名もなきエンジニア

回答

この質問はすでに終了しているため、回答できません