在提交表单之前重新排序输入

Posted

技术标签:

【中文标题】在提交表单之前重新排序输入【英文标题】:Reorder inputs before submiting form 【发布时间】:2011-01-19 21:08:26 【问题描述】:

在发布到脚本进行处理之前,是否有任何方法可以重新排序或操作一组输入? 我能够重新排序 DOM 中的元素没有问题,但是在用户按下提交按钮之后和浏览器进行 POST 之前让这种情况发生有点棘手。我在 jQuery 中使用 ajaxForm 插件。有一个 beforeSubmit 回调,但这似乎不允许我重新排序输入。

【问题讨论】:

您想在提交后重新排序输入字段吗?为什么?让POST数组中的字段有一定的顺序?它是一个关联数组,无论如何都没有顺序。 【参考方案1】:

据我所知,规范不保证输入发送到服务器的顺序(如果我错了,请纠正我)。那么重新排序它们有什么意义呢?我不明白为什么这很有用。

【讨论】:

我知道没有保证顺序,但在我所有的测试中,我从未见过 POST 变量的顺序与预期的顺序不同,即。从左到右。【参考方案2】:

没有充分的理由要这样做。

【讨论】:

【参考方案3】:
$('#form').ajaxForm( beforeSerialize: orderInputsFunction );

这行得通。使用jQuery Form Plugin,您可以使用带有 beforeSerialize 选项的回调函数来操作表单。

在我不幸的情况下,我正在使用一个 php 脚本,该脚本假定某些帖子变量将按特定顺序排列。

【讨论】:

以上是关于在提交表单之前重新排序输入的主要内容,如果未能解决你的问题,请参考以下文章

在提交表单之前显示弹出窗口/模式以进行确认

表单提交后,在输入中显示新值而不是缓存值

Laravel 重新提交表单验证仍然显示旧输入值

提交表单后防止重新加载页面。 (没有阿贾克斯)

Rails - 为啥远程提交我的表单后 jQuery 不加载

重新提交具有 jQuery 提交函数并返回 False 的表单