web-dev-qa-db-ja.com

チェックボックス入力要素の `name`属性の目的は何ですか?

XHTMLのチェックボックス入力について多くのオンラインドキュメントを調べました。誰かが私の疑問をクリアできますか?このnameフィールドは実際には何を表していますか?

Milk: <input type="checkbox" name="checkbox" value="Milk">
Chocolate: <input type="checkbox" name="checkbox" value="chocolate">
Cold Drink: <input type="checkbox" name="checkbox" value="Cold Drink">

その特定のチェックボックスの識別子であり、後で名前を参照するだけで他のファイルで使用できると思いましたが、すべてのチェックボックスの名前が同じであるとすると、なぜそれを指定するのでしょうか。これについて少し混乱しています。

16
Nagaraj Tantri

_name="checkbox"_のために混乱しないでください。より論理的には_name="drink"_および_type=checkbox_である可能性があります。

上記の場合、同じ名前のチェックボックスが複数あります。複数のチェックボックスが同じ名前の場合、フォームはリクエストで値のグループをサーバーに送信します。注:チェックボックスがオンになっているの値のみがサーバーに送信されます。

理想的には、これらは、複数の回答が許可されている複数の選択肢の質問を許可するために使用されます。オプションの中で1つの回答のみが許可されるラジオボタンとは対照的です。

更新:

受信側では、たとえばJSPを使用している場合、選択したチェックボックスの値は、実際の場合はrequest.getParameterValues("drink")またはrequest.getParameterValues("checkbox")として使用できます。ここでname属性が使用されます。

27
JoseK

Name属性は、送信後にフォームデータを参照するため、およびクライアント側でJavaScriptを使用してデータを参照するために使用されます。

出典: http://reference.sitepoint.com/html/input/name

基本的に、あなたが説明したこと。フォームが送信されると、フォーム要素に割り当てるnameを介してフォーム要素の値にアクセスできます。

同じinputを持つ複数のnameが必要な唯一の場所は、それらがラジオボタンである場合です。この場合、それらのどれが同じグループに属しているかを示すために使用されます。したがって、一度に選択できるのは1つだけです。

6
Yi Jiang