Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

People also ask

Can two forms have the same name?

Only the name must be unique inside the form itself. See the docs: "The value must not be the empty string, and the value must be unique amongst the form elements in the forms collection that it is in, if any." This may be misleading.

Can HTML elements have the same name?

Yup! This is absolutely fine. name is used during form submission to POST/GET the values.

Can you have two input types?

No it is not possible. ANd nobody needs 2 input types for 1 field. And how can an email be numbers?

Does every input need a name?

Without the name attribute, an <input> element cannot provide its value to the server on form submission. Adam is a technical writer who specializes in developer documentation and tutorials.


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];