<button>
クリックしてフォームの AJAX POST をトリガーする要素があります。要素をフォーム内に配置する<button>
と、フォームを送信するというデフォルトの動作 (非 ajax) でクリックに応答します。フォーム内の要素のこのデフォルトの動作を防ぐ<button>
には、次のいずれかを実行できます。
- 要素
type="button"
に割り当てる<button>
- イベントハンドラーで e.preventDefault() を呼び出します
click
(つまり、jQuery を使用) - ボタンをフォームの外側に移動する
各アプローチの長所と短所は何ですか?
注: インターネット上には、要素が同封フォームを送信するのを防ぐ方法について説明している SO の投稿や資料が数え切れないほどあり<button>
ますが、それらのどれも理由については説明していません。そして、これはなぜなのかという質問です。