тобто:
<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>
Це також нормально, і, як правило, інтерпретується як масив значень, наприклад {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-адреси з'являються в кодованому рядку, це буде трактуватися як масив. Спробуйте це в 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.
Щоб перевірити, чи він дійсний чи ні, створіть сторінку та протестуйте на W3C тут:
А) Ваш перший приклад - це нормально, оскільки форми часу подання будуть різними:
<form id="1">
<input type="hidden" name="url" value="1">
</form>
<form id="2">
<input type="hidden" name="url" value="2">
</form>
Б) Ваш другий приклад теж добре, але не стандартна практика кодування:
<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];