开发者

Is it valid to have two input elements with the same name?

i.e.:

<form 1>
<input type="hidden" name="url开发者_开发技巧" value="1">
</form 1>

and

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

Is this allowed and valid?


Yes, it is valid

This is Good

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

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

This is also fine and will generally be interpreted as an array of values, e.g. {url: [1, 2]}, depending on what your server does. In a URL encoding, it will look like url=1&url=2.

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


Yes.

More, it is essential if you are dealing with radio button groups.


"This is Not Good" parses correctly on every browser I know of; if two url's appear in the url encoded string, it will be treated as an array. Try this in JQuery:

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

and you will get: "url=1&url=2"

a well-written query string parser will return a json structure like this:

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

Is it strictly spec? Nope, but neither is creating a multi-line string by escaping the EOL with a backslash, as I did above.


Yes -- each will only submit with their respective forms.

If you have them in the same form, one will override the other and it is not valid.

EDIT: As pointed out by Mahmoodvcs that the overriding only occurs in some languages (such as PHP) as is not inherent within HTML itself.


To test if it is valid or not, creat you page and test at W3C here :

http://validator.w3.org/


A) Your first example is okay, because the forms time of submission will be different:

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

B) Your second example is also okay, but not standard coding practice:

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

Java code two extract both values:

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


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

In PHP you will get values with $_POST['url']

for($i=0;$i<count(url);$i++)
echo $_POST['url'][$i];
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜