web-dev-qa-db-ja.com

同じ名前の2つの入力要素を持つことは有効ですか?

すなわち:

<form 1>
<input type="hidden" name="url" value="1">
</form 1>

そして

<form 2>
<input type="hidden" name="url" value="2">
</form 2>

これは許可され有効ですか?

66
Rohan

はい有効です

これは良い

<form name="form1">
  <input type="hidden" name="url" value="1">
</form>

<form name="form2">
  <input type="hidden" name="url" value="2">
</form>

これも問題ありません。通常は値の配列として解釈されます。 {url: [1, 2]}、サーバーの動作に応じて。 URLエンコーディングでは、url=1&url=2

<form name="form1">
  <input type="hidden" name="url" value="1">
  <input type="hidden" name="url" value="2">
</form>
49
Web Logic

はい。

さらに、ラジオボタングループを扱う場合は不可欠です。

10
Quentin

「これは良くない」は、私が知っているすべてのブラウザで正しく解析されます。 URLエンコードされた文字列に2つのURLが含まれている場合、配列として扱われます。 JQueryでこれを試してください。

$('<form name="form1">\
     <input type="hidden" name="url" value="1">\
     <input type="hidden" name="url" value="2">\
</form>').serialize()

取得します:"url=1&url=2"

適切に記述されたクエリ文字列パーサーは、次のようなjson構造を返します。

 {"url":["1", "2"]}

厳密な仕様ですか?いいえ、しかしどちらも、上記のようにEOLをバックスラッシュでエスケープすることで複数行の文字列を作成します。

8
Jeff Lowery

はい-それぞれがそれぞれのフォームでのみ送信します。

同じフォームにある場合、一方が他方をオーバーライドし、無効になります。

8
Kerry Jones

有効かどうかをテストするには、ページを作成して、ここでW3Cでテストします。

http://validator.w3.org/

3
Wassim AZIRAR
A)

< form 1>   
< input type="hidden" name="url" value="1">  
< /form 1>

and

< form 2>  
< input type="hidden" name="url" value="2">  
< /form 2>

is Okay,beacuse forms submiting time will be different 


B) 

< form 1>  
< input type="hidden" name="url" value="1">  
< input type="hidden" name="url" value="2">  
< /form 1>  
is also okay, but not standard coding practice

Java Code two extract both values ::

Map<String,String[]> parmMap = requestObj.getParameterMap();   
String input1 = parmMap.get("url")[0];   
String input2 = parmMap.get("url")[1];
1
Aksahy N Shelke