web-dev-qa-db-fra.com

Est-il valide d'avoir deux éléments d'entrée avec le même nom?

c'est à dire.:

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

et

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

Est-ce autorisé et valide?

66
Rohan

Oui, c'est valide

C'est bien

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

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

C'est aussi bien et sera généralement interprété comme un tableau de valeurs, par ex. {url: [1, 2]}, en fonction de ce que fait votre serveur. Dans un encodage d'URL, il ressemblera à 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

Oui.

De plus, il est essentiel si vous avez affaire à des groupes de boutons radio.

10
Quentin

"This is Not Good" analyse correctement sur tous les navigateurs que je connais; si deux URL apparaissent dans la chaîne encodée, elle sera traitée comme un tableau. Essayez ceci dans JQuery:

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

et vous obtiendrez: "url=1&url=2"

un analyseur de chaîne de requête bien écrit renverra une structure json comme celle-ci:

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

Est-ce strictement conforme aux spécifications? Non, mais ni l'un ni l'autre ne crée une chaîne multi-lignes en échappant à l'EOL avec une barre oblique inverse, comme je l'ai fait ci-dessus.

8
Jeff Lowery

Oui - chacun ne soumettra qu'avec ses formulaires respectifs.

Si vous les avez sous la même forme, l'une remplacera l'autre et elle n'est pas valide.

8
Kerry Jones

Pour tester si elle est valide ou non, créez votre page et testez au W3C ici:

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