使用jQuery ajaxSubmit修改beforeSubmit的表单值?

使用jQuery ajaxSubmit修改beforeSubmit的表单值?,jquery,jquery-forms-plugin,Jquery,Jquery Forms Plugin,我在表单插件中使用jQuery的ajaxSubmit函数提交一个表单。我正试图在提交之前向表单数据添加表单名称/值对。我的计划是修改beforeSubmit事件处理程序中的表单数据 给定一个如下所示的函数: function handleActionFormBeforeSubmit(formData, form, options) { // Add a name/value pair here somehow to formData } 如何向formData添加简单对?它是一个数组,

我在表单插件中使用jQuery的ajaxSubmit函数提交一个表单。我正试图在提交之前向表单数据添加表单名称/值对。我的计划是修改beforeSubmit事件处理程序中的表单数据

给定一个如下所示的函数:

function handleActionFormBeforeSubmit(formData, form, options) {
    // Add a name/value pair here somehow to formData
}
如何向formData添加简单对?它是一个数组,其形式为:

[ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
谢谢,
布莱恩

经过一个小时的实验,我想出了一个解决办法。要将值附加到表单数据,以下代码将起作用

function handleActionFormBeforeSubmit(formData, form, options) {

    // Add a name/value pair indicating this is an asynchronous call.
    // This works with the ASP.NET MVC framework's Request.IsMvcAjaxRequest() method.
    formData[formData.length] = { "name": "__MVCASYNCPOST", "value": "true" };
}
如果知道要更改的值的索引,也可以修改数据,例如:

formData[0].value = 'new value';
我希望这对其他人有帮助。

这很好:

formData.push({ "name": "__MVCASYNCPOST", "value": "true" });

由于某些原因,当我遇到此问题时,更改beforeSubmit回调中的数据对我无效


但是,在表单选项中将对象指定给“数据”会导致将此对象附加到序列化数据。jquery表单网站上没有明确记录这一点,但它是底层$.ajax方法的一部分。

formData[0]。value='newvalue';在AjaxSubmit()中工作正常。我在动态上传文件内容时实现了同样的功能。早些时候,经过这么多时间后,表单会将空白数据发送到服务器,所以这段代码有助于在提交表单之前进行更改