我有一系列代表不同形式的输入:
<form id="myform">
<div id="item1">
<label> Name </label><input name="item1" type="text" value=""/>
</div>
<div id="item2">
<label> Name </label><input name="item2" type="text" value=""/>
</div>
<div id="item3">
<label> Name </label><input name="item3" type="text" value=""/>
</div>
</form>
<script>
$.post("/url/", $("#myform").serialize(), function(){});
</script>
发布时,是否可以保证我将按照表格中显示的顺序接收数据?我已经对其进行了测试,并且确实按该顺序返回了item1,item2,item3,但是可以安全地假定这一点吗?
最佳答案
这是一个棘手的问题。 The serialize
documentation没有说任何关于订单的信息,但是说了:
该符号的RFC RFC 1867指出:
使用jQuery的a really old version(v1.2.1)和the current version(v1.11.0)的经验结果均显示了保留的顺序。
因此,我想说,即使jQuery文档不是很明确,但它对“标准URL编码表示法”的引用结合了RFC和行为的稳定性表明您可以依靠它。如果要更改(这似乎不太可能,jQuery通常按文档顺序执行操作),我认为可以合理地将其视为错误。