2011-12-31 1 views
4

Для данной 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, кажется, что оба используют порядок поиска глубины. Возможно, другие браузеры разные. Вопрос в том, предписывается ли этот порядок где-то.

+0

Не думаю, что есть порядок, за которым они должны следовать. – vdbuilder

ответ

7

Если вы продолжаете раздел 17.13.4 of the HTML spec, в нем указывается, что тип содержимого по умолчанию - application/x-www-form-urlencoded. Раздел для этого типа контента говорит:

Название управления/значения перечислены в порядке их появления в документе.

Это может предполагать обход глубины и, похоже, согласуется с вашими тестами в браузере.

 Смежные вопросы

  • Нет связанных вопросов^_^