Для данной HTML-формы является агентом пользователя, который должен создать запрос на отправку в определенном порядке?Требуются ли пользовательские агенты HTML для отправки данных формы в определенном порядке?
Я просмотрел спецификацию HTML 4.0.1 и, похоже, не указывает порядок, согласно которому «успешный контроль» становится частью запроса при отправке. Section 17.13.3, данные формы обработки, утверждает:
Когда пользователь отправляет форму (например, путем активации кнопки отправки), агент пользователя обрабатывает ее следующим образом.
Шаг один: Определить successful controls
Шаг второй: создать форму набора данных
A образуют набор данных представляет собой последовательность control-name/current-value пар построены из успешных управления
Шаг третий: Кодировать данные формы данных
Затем набор данных формы кодируется в соответствии с типом контента, указанным атрибутом
enctype
элементаFORM
.Шаг четыре: Отправить кодированные данные формы установлены
На втором этапе набор данных формы описывается как последовательности, так что порядок, в котором он кодируется в шаге 3, по-видимому исправлено. Но это ставит вопрос о том, какой порядок успешного контроля находится в наборе данных формы.
Например, с учетом следующей формы HTML:
<form action="#" method="GET">
<input type="hidden" name="key1" value="value1" />
<div>
<div>
<input type="hidden" name="key2" value="value2" />
</div>
<input type="hidden" name="key3" value="value3" />
<input type="submit" name="submit" value="Submit" />
</div>
<input type="hidden" name="key5" value="value5" />
</form>
Может ли набор данных формы будет
[(
"key1"
,"value1"
), ("key2"
,"value2"
), ("key3"
,"value3"
) , ("submit"
,"Submit"
), ("key5"
,"value5"
)]
(I.e. поиск глубин в DOM); или
[(
"key1"
,"value1"
), ("key5"
,"value5"
), ("key3"
,"value3"
), ("submit"
,"Submit"
), ("key2"
,"value2"
)]
(широта-первый поиск); или даже недетерминированный порядок, возникающий в результате итерации пар имя-контроль/имя-значение в рандомизированной хэш-таблице?
Тестирование этой формы с помощью IE 9 и Firefox 9.0.1, кажется, что оба используют порядок поиска глубины. Возможно, другие браузеры разные. Вопрос в том, предписывается ли этот порядок где-то.
Не думаю, что есть порядок, за которым они должны следовать. – vdbuilder