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