是否有jQuery serialize()保证来自表单的数据是否有序?

use*_*398 5 html jquery

我有一系列代表不同形式的输入:

<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>
Run Code Online (Sandbox Code Playgroud)

当帖子发生时,是否保证我会收到表格中显示的订单数据?我已经测试了它,它确实按顺序返回item1,item2,item3,但是可以安全地假设吗?

T.J*_*der 5

这是一个棘手的问题.serialize文件并没有说明任何顺序,但不会说:

...以标准的URL编码表示法创建文本字符串.

该表示法的RFC,RFC 1867,声明:

表单的每个字段按其在表单中出现的顺序发送,作为多部分流的一部分.

使用真正旧版本的jQuery(v1.2.1)和当前版本(v1.11.0)的经验结果都显示了保留的顺序.

所以我想说即使jQuery文档没有明确说明,它对"标准URL编码符号"的引用与RFC和行为的稳定性相结合表明你可以依赖它.如果要改变(这似乎不可能的,jQuery的,一般不会在文档顺序的东西),我认为它可以合理地认为是一个错误.