web-dev-qa-db-ja.com

同じ名前属性の入力フィールドを持つ複数のフォーム?良いまたは悪い?

同じ名前属性を共有する入力フィールドを持つページに複数の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.0StrictDoctypeでも有効になります。しかし、これはWeb標準またはアクセシビリティの観点から許容できる方法ですか?

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

26
Richard Knop

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

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

14
Greg

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

4
cherouvim

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

2
svg