有两个具有相同名称的输入元素是否有效?

时间:2010-05-25 17:13:10

标签: html validation forms

即:

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

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

这是否允许且有效?

7 个答案:

答案 0 :(得分:46)

是的,有效

这是好的

<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=1&url=2

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

答案 1 :(得分:10)

此外,如果您正在处理单选按钮组,这一点至关重要。

答案 2 :(得分:8)

是的 - 每个人只会提交各自的表格。

如果你有相同的形式,一个会覆盖另一个,它无效。

答案 3 :(得分:8)

“这不好”在我知道的每个浏览器上正确解析;如果两个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来创建一个多行字符串。

答案 4 :(得分:3)

要测试它是否有效,请在此创建页面并在W3C进行测试:

http://validator.w3.org/

答案 5 :(得分:1)

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

答案 6 :(得分:0)

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

在 PHP 中,您将使用 $_POST['url'] 获取值

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