フォームがあります。そのフォームの外側にボタンがあります。次のようなシンプルなボタンです。
<button>My Button</button>
それでも、クリックするとフォームが送信されます。コードは次のとおりです。
<form id="myform">
<label>Label
<input />
</label>
</form>
<button>My Button</button>
このボタンはJavaScriptを実行するだけです。しかし、上記のコードのように見えても、フォームを送信します。タグボタンをspanに変更すると、完璧に動作します。しかし、残念ながら、ボタンである必要があります。そのボタンがフォームを送信しないようにブロックする方法はありますか?例えば
<button onclick="document.getElementById('myform').doNotSubmit();">My Button</button>
ベストアンサー1
これは HTML の最も厄介な小さな特異性だと思います... 送信されないようにするには、そのボタンは「ボタン」タイプである必要があります。
<button type="button">My Button</button>
2019年2月5日更新:HTML リビングスタンダード(また、HTML 5 仕様):
欠落値のデフォルトと無効な値のデフォルトは、送信ボタンの状態です。