26

同じ name 属性を共有する入力フィールドを含む複数の HTML フォームをページに配置することは許容されますか? たとえば、ページにはすべてのプレーヤーのリストが含まれており、ユーザーは最高のプレーヤーに投票できるため、各プレーヤー カードの横に次のフォームがあります。

<form class="vote-for-player" enctype="application/x-www-form-urlencoded" method="post" action="/index/vote-for-best-player">
    <input type="hidden" name="player_id" value="1" />
    <input type="submit" name="vote_for_player" value="Vote" class="input-submit" />
</form>

もちろん、非表示の入力フィールドの値属性はフォームごとに異なります。

ページにこのようなフォームが 20 個あるとします。これは、「player_id」に等しい名前の入力フィールドが 20 個あることを意味します。そのページを HTML バリデーターに渡すと、XHTML 1.0 Strict doctype でも有効です。しかし、これは Web 標準またはアクセシビリティの観点から受け入れられる慣行でしょうか?

私が確かに知っていることの 1 つは、player_id と呼ばれる 1 つの POST フィールドから値をロードするだけでよいため、ページのサーバー側処理が簡単になることです。

4

3 に答える 3

14

上記の答えに同意します。名前は完全にOKであり、フォームの応答パラメーターとして渡されます。別の話は、入力要素が同じIDを持っている場合です。一部のブラウザでは、ドキュメントのdomをトラバースする際に問題が発生する可能性があります。

繰り返しになりますが、ユーザーが性別などを選択できるラジオボタンの束を考えてみてください。それらは同じ名前(ただし異なるID)である必要があります...

于 2010-02-18T21:50:10.530 に答える
4

はい、それは有効です、私はいつもそうしています。

于 2010-02-18T21:40:06.883 に答える
2

はい、それはまったく問題ありません..実際、個人的には、開発者が名前の束に比べて比較的少ない名前で作業するのが比較的便利になるため、そうするのは本当に良い習慣だと感じています..さらに、要素が異なるフォームにある場合名前でjsの要素を識別するために、フォーム名と入力フィールド名の両方を使用するため、名前空間の衝突は決して発生しません。問題は発生しません...

于 2013-01-10T11:34:10.873 に答える