buttonタグでsubmitさせない方法

HTML/CSS プログラミング
記事内に広告が含まれています。

formタグ内にあるbuttonを押したら意図しない挙動になったことはないでしょうか?

今回はそんな時の対処法をご紹介します。

サンプルコード

ボタンを押すとalertが表示されるサンプルコードです。

codepenにコピペすると動くので試してみてください!

<form onsubmit="alert('submit!'); return false">
  <!-- type指定なし -->
  <button type="">キャンセル</button>
  <button type="">送信</button>
</form>

このままだと、”キャンセル”、”送信”のどちらを押してもonsubmintが発火してalertが表示されます。

button_submit_1

対策: buttonのtypeを指定する

buttonはtypeは指定しないとsubmitと判断されるため

先ほどのコードだと、キャンセルを押してもonsubmitが発火します。

そこでonsubmintを発火したくないキャンセルの方にtypeとしてbuttonを指定します。

すると、キャンセルの方は押しても何も起きません。

<form onsubmit="alert('submit!'); return false">
  <!-- type指定あり -->
  <button type="button">キャンセル</button>
  <button type="">送信</button>
</form>

まとめ

formやbuttonで意図しない関数が実行されたときはtypeを確認してみましょう。

コメント