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

前端 未结 6 1126
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-13 11:40

i.e.:

and

相关标签:
6条回答
  • 2020-12-13 12:14

    Yes.

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

    0 讨论(0)
  • 2020-12-13 12:14

    "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.

    0 讨论(0)
  • 2020-12-13 12:14

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

    http://validator.w3.org/

    0 讨论(0)
  • 2020-12-13 12:15

    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];
    
    0 讨论(0)
  • 2020-12-13 12:16

    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.

    0 讨论(0)
  • 2020-12-13 12:30

    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>
    
    0 讨论(0)
提交回复
热议问题