1つのフォームの中で、同じ値の name
属性を持つ input は複数存在しても構いません。
その場合、無効またはチェックされていない input を除いて、 name-value ペアがすべて送信されます1。たとえば以下のフォームを送信した場合、リクエストボディは employee=alice&employee=bob
になります。
<form action="/" method="POST">
<input type="text" name="employee" value="alice">
<input type="text" name="employee" value="bob">
<input type="submit">
</form>
上記の例では name
を重複させる意味がありませんが、 JavaScript で動的に input を追加して複数項目を送信するような場合、同名の name
をつけることがあります。
また、ラジオボタンの name
は意図して重複させる使い方をします。同一フォーム内で name
の値が等しいラジオボタンは1つしかチェックできない(つまりチェックした input の value
だけが送信される)ことを利用し、ラジオボタンをグループ化するためです2。
次に、異なるフォームの間で、同じ値の name
属性を持つ input は複数存在しても構いません。それらの input は特に関連しません。