0

<button>クリックしてフォームの AJAX POST をトリガーする要素があります。要素をフォーム内に配置する<button>と、フォームを送信するというデフォルトの動作 (非 ajax) でクリックに応答します。フォーム内の要素のこのデフォルトの動作を防ぐ<button>には、次のいずれかを実行できます。

  1. 要素type="button"に割り当てる<button>
  2. イベントハンドラーで e.preventDefault() を呼び出しますclick(つまり、jQuery を使用)
  3. ボタンをフォームの外側に移動する

各アプローチの長所と短所は何ですか?

注: インターネット上には、要素が同封フォームを送信するのを防ぐ方法について説明している SO の投稿や資料が数え切れないほどあり<button>ますが、それらのどれも理由については説明していません。そして、これはなぜなのかという質問です。

4

1 に答える 1

1

2 番目のアプローチのようなものを使用します。

$('form').submit(function(e) {
    e.preventDefault();

    // AJAX stuff
});

他の 2 つの方法では、JavaScript を使用しないブラウザーではフォームを使用できなくなります。何もしないボタンはユーザーを苛立たせます。

于 2013-01-11T02:18:11.823 に答える