то есть:
<form 1>
<input type="hidden" name="url" value="1">
</form 1>
и
<form 2>
<input type="hidden" name="url" value="2">
</form 2>
Это разрешено и действительно?
html
validation
forms
Рохан
источник
источник
Ответы:
Да, это действительно
Это хорошо
<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 обратной косой чертой, как я сделал выше.
источник
Да - каждый будет отправлять только свои формы.
Если у вас они в той же форме, один будет иметь приоритет над другим, и это недействительно.
РЕДАКТИРОВАТЬ: Как указал Махмудвкс, переопределение происходит только на некоторых языках (например, PHP), поскольку оно не присуще самому HTML.
источник
Чтобы проверить, действительно ли это, создайте свою страницу и протестируйте в W3C здесь:
http://validator.w3.org/
источник
A) Ваш первый пример в порядке, потому что время отправки форм будет другим:
<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 2 извлекает оба значения:
Map<String,String[]> parmMap = requestObj.getParameterMap(); String input1 = parmMap.get("url")[0]; String input2 = parmMap.get("url")[1];
источник