Dan*_*ien 4 html forms web-standards
对于给定的HTML表单,是否需要以特定顺序构建提交请求的用户代理?
我正在查看HTML 4.0.1规范,它似乎没有指定"成功控件"成为提交请求的一部分的顺序.第17.13.3节,处理表格数据,状态:
当用户提交表单时(例如,通过激活提交按钮),用户代理如下处理它.
第一步:确定成功的控制
第二步:构建表单数据集
第三步:对表单数据集进行编码
然后根据元素
enctype属性指定的内容类型对表单数据集进行编码FORM.第四步:提交编码的表单数据集
在步骤2,表单数据集被描述为序列,因此在步骤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>
Run Code Online (Sandbox Code Playgroud)
表格数据集可以吗?
[(
"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测试此表单时,似乎都使用深度优先搜索顺序.也许其他浏览器是不同的.问题是这个命令是否在某个地方被规定.