1. ホーム
  2. javascript

ajaxで送信する場合、なぜformタグを使うのですか?

2023-08-11 18:28:20

質問

哲学的な質問です。

例えば、次のようなWebアプリがあるとします。 が必要です。 javascript とモダンなブラウザが必要な Web アプリがあり、プログレッシブ エンハンスメントは問題ではありません。フォームを javascript で作成し、データの更新をすべて ajax の POST および PUT で行う場合、コントロールをフォーム タグでラップする理由は本当にあるのでしょうか? セマンティックな理由や構造的な理由でタグを使用するのであれば、アクションやメソッドのパラメータを無視する理由はあるのでしょうか? 私には、以前の時代から残っているように感じられます。

どのように解決するのですか?

フォームタグの中で入力をラップすることによって、特に提供される重要なユーザーエクスペリエンス機能が少なくとも1つ存在します。

Enterキーはフォームを送信します。 実は、モバイルSafariでは、このように "Go"と表示されます。 ボタン をキーボードに表示させる .

入力をラップするフォームがなければ、送信するものは何もありません。

もちろん、キー押下イベントを通してエンターキーの動作を提供することはできますが、これがモバイルデバイスのために機能するかどうかについてはわかりません。 あなたのことはよく知りませんが、私は、イベントによってセマンティクスを模倣するよりも、ブラウザによって提供されるセマンティクスで作業したいです。

あなたの場合、単に onsubmit イベントハンドラで AJAX 送信を行い、次に return false を実行し、実際の送信をキャンセルします。

単に action="" (これは "self" を意味します)、そして method は必須ではなく、デフォルトで GET .