
我正在查看HTML 4.0.1规范,它似乎没有指定“成功控件”成为提交请求的一部分的顺序. Section 17.13.3,处理表单数据,状态:
When the user submits a form (e.g.,by activating a submit button),the user agent processes it as follows.
Step one: IDentify the 07001
Step two: Build a form data set
A form data set is a sequence of 07002/07003 pairs constructed from successful controls
Step three: Encode the form data set
The form data set is then encoded according to the content type specifIEd by the
enctypeattribute of theFORMelement.Step four: submit the encoded form data set
在步骤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>
表格数据集可以吗?
[ (
"key1","value1"),("key2","value2"),("key3","value3"),("submit","submit"),("key5","value5") ]
(即,DOM的深度优先搜索);要么
[ (
"key1","value5"),"value2") ]
(广度优先搜索);或者甚至是通过在随机哈希表中迭代控制名/当前值对而产生的非确定性顺序?
使用IE 9和firefox 9.0.1测试此表单时,似乎都使用深度优先搜索顺序.也许其他浏览器是不同的.问题是这个订单是否在某处规定.
解决方法 如果继续第 17.13.4 of the HTML spec节,则表明默认内容类型为application / x-www-form-urlencoded.该内容类型的部分说:The control names/values are Listed in the order they appear in the document.
这将建议深度优先遍历,并且似乎同意您的浏览器测试.
总结以上是内存溢出为你收集整理的是否需要HTML用户代理以特定顺序提交表单数据?全部内容,希望文章能够帮你解决是否需要HTML用户代理以特定顺序提交表单数据?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)