同じ名前のフォーム入力要素を複数持つことは有効ですか?


11

それは有効なマークアップであり、HTML / HTTP仕様に対して有効ですか?私が持っていたかったら

<form>
<input name="email" />
<input name="email" />
<input name="email" />
</form>

それは有効ですか?


定義上、同じグループ内のラジオボタンは同じ名前を持っています。
MrWhite、2011

回答:


9

以下のようSO上で述べました

ブラウザはそれで大丈夫です。ただし、アプリケーションライブラリがそれを解析する方法は異なる場合があります。

プログラムは、同じ名前のアイテムをグループ化することになっています。HTML仕様はこれを明示的に述べていませんが、チェックボックスのドキュメントで暗黙的に述べられています:

「フォーム内の複数のチェックボックスが同じコントロール名を共有する場合があります。たとえば、チェックボックスを使用すると、ユーザーは同じプロパティの複数の値を選択できます。」

余談ですが、PHPではフィールド名にPHPのarry構文を使用すると、同じ名前のフォームフィールドを持つことができます。

<form>
<input name="email[]" />
<input name="email[]" />
<input name="email[]" />
</form>

これにより、ブラウザは、PHPがこれらのフィールドの配列に入力するために使用する構文でフォームフィールドを送信します$_REQUEST['email']。PHPを使用する場合は、これを使用することをお勧めします。


5

HTML5

非規範的なセクション4.10.1.3サーバーと通信するようにフォームを構成すると、フォームが有効であることが明示されます。

複数のコントロールに同じ名前を付けることができます。たとえば、ここではすべてのチェックボックスに同じ名前を付け、サーバーはその名前で送信された値を確認することで、チェックボックスがどのチェックボックスにチェックされたかを区別します。ラジオボタンと同様に、値属性で一意の値も与えられます。

これの規範的なバージョンは、どこでも禁止されていないことであり、フォーム送信アルゴリズムは、どの要求を生成する必要があるかを正確に示します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.