Допустимо ли иметь два элемента ввода с одинаковым именем? - PullRequest
63 голосов
/ 25 мая 2010

то есть:.

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

и

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

Это разрешено и допустимо?

Ответы [ 6 ]

46 голосов
/ 25 мая 2010

Да, действительно

Это хорошо

<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>
10 голосов
/ 25 мая 2010

Да.

Более того, важно, если вы имеете дело с группами переключателей.

8 голосов
/ 25 ноября 2014

«Это нехорошо» правильно анализируется в каждом браузере, о котором я знаю; если в строке, закодированной в URL, появятся два 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 голосов
/ 25 мая 2010

Да - каждый будет отправлять только свои соответствующие формы.

Если они у вас в одной форме, одна переопределит другую, и она недействительна.

3 голосов
/ 25 мая 2010

Чтобы проверить, является ли это действительным или нет, создайте свою страницу и протестируйте на W3C здесь:

http://validator.w3.org/

1 голос
/ 06 января 2017
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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...