<form 1>
<input type="hidden" name="url" value="1">
</form 1>
和
<form 2>
<input type="hidden" name="url" value="2">
</form 2>
這是允許的和有效的?
<form 1>
<input type="hidden" name="url" value="1">
</form 1>
和
<form 2>
<input type="hidden" name="url" value="2">
</form 2>
這是允許的和有效的?
是的,在你的情況下,它是有效的。試想一下:
這是一個好
<form name="form1">
<input type="hidden" name="url" value="1">
</form>
<form name="form2">
<input type="hidden" name="url" value="2">
</form>
這是不好的
<form name="form1">
<input type="hidden" name="url" value="1">
<input type="hidden" name="url" value="2">
</form>
爲什麼投票? – 2010-05-25 17:57:34
它是有效的。它不會對服務器端語言產生混淆(即使PHP與其命名字段共享名稱的約定,也會一致且可預測地處理不使用該約定的多個輸入)。它不會造成對JavaScript的混淆(這會將元素作爲集合呈現,而**不會忽略其中的一個)。它可能會造成編寫代碼時不知道自己在做什麼的作者的混淆,但根據規範它沒有問題。 – Quentin 2010-05-25 17:58:00
@David Dorward:謝謝你解釋說我刪除了那部分。 – 2010-05-25 18:00:42
是的。
更多的是,如果你正在處理單選按鈕組,這是非常重要的。
的確如此。或者使用複選框,在這種情況下,您可以將[]放在末尾「url []」,並創建要拾取的數組。 – 2010-05-25 17:15:24
@Kerry - 這是一個PHPism。大多數表單處理庫都非常樂意爲控件組設置特殊名稱。 – Quentin 2010-05-25 17:56:41
啊,很高興知道。 – 2010-05-25 18:49:52
是 - 每個只會提交各自的表格。
如果你有他們在相同的形式,一個會覆蓋另一個,它是無效的。
你錯了。如果你有多個名字相同的輸入,你可以不重寫另一個輸入。所有的輸入將按照它們在html中出現的順序附加到請求的主體。它是有效的:[具有多個隱藏的同名控件元素的HTML表單](http://stackoverflow.com/questions/452066/html-form-with-multiple-hidden-control-elements-of-the-same-姓名) – Mahmoodvcs 2015-07-28 09:26:50
@Mahmoodvcs:這不完全正確。如果表單發佈到PHP服務,則最後一個值會贏。如果您希望將多個值分配給名稱,則每個名稱必須以'[]'結尾。 – 2015-10-07 19:23:05
我們在這裏討論HTML,而不是PHP。 – Mahmoodvcs 2015-10-09 23:00:02
「這是不好的」在我知道的每個瀏覽器上正確解析;如果兩個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來創建多行字符串。
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];
([HTML具有相同名稱的多個隱藏控制元件形式]的可能的複製http://stackoverflow.com/questions/452066/html-form-with-multiple-hidden-control-elements-of同名) – 2016-06-01 21:43:28