即:
<form 1>
<input type="hidden" name="url" value="1">
</form 1>
和
<form 2>
<input type="hidden" name="url" value="2">
</form 2>
这是允许和有效的吗?
Answers:
是的,这是有效的
这很好
<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编码中,它将类似于url=1&url=2
。
<form name="form1">
<input type="hidden" name="url" value="1">
<input type="hidden" name="url" value="2">
</form>
在我所知道的每个浏览器上,“这都是不好的”解析;如果在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都不能创建多行字符串。
是的-每个人只会提交各自的表格。
如果您使用相同的格式,则其中一个将覆盖另一个,并且无效。
编辑:正如Mahmoodvcs所指出的那样,重写仅在某些语言(如PHP)中发生,而HTML本身并不固有。
A)您的第一个示例是可以的,因为提交表单的时间会有所不同:
<form id="1">
<input type="hidden" name="url" value="1">
</form>
<form id="2">
<input type="hidden" name="url" value="2">
</form>
B)您的第二个示例也可以,但是不是标准的编码实践:
<form>
<input type="hidden" name="url" value="1">
<input type="hidden" name="url" value="2">
</form>
Java代码二提取两个值:
Map<String,String[]> parmMap = requestObj.getParameterMap();
String input1 = parmMap.get("url")[0];
String input2 = parmMap.get("url")[1];