Требуется ли агенту пользователя для создания запроса на отправку в определенном порядке для данной формы HTML?
Я просматривал спецификацию HTML 4.0.1 и, похоже, не указывает порядокчто "успешные средства управления" становятся частью запроса о представлении. Раздел 17.13.3 , Обработка данных формы, состояния:
Когда пользователь отправляет форму (например, активируя кнопку отправки), пользовательский агент обрабатывает ее следующим образом.
Шаг первый: определение успешных элементов управления
Шаг второй: создание набора данных формы
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"
)]
(т. Е. Поиск DOM в глубину);или
[("key1"
, "value1"
), ("key5"
, "value5"
), ("key3"
, "value3"
), ("submit"
, "Submit"
), ("key2"
, "value2"
)]
(поиск в ширину);или даже недетерминированный порядок, полученный в результате итерации пар имя элемента управления / текущее значение в рандомизированной хэш-таблице?
При тестировании этой формы с IE 9 и Firefox 9.0.1 кажется, что оба используют поиск в глубинупорядок.Возможно, другие браузеры отличаются.Вопрос в том, прописан ли этот порядок где-то.