7

我有一个表单,我使用表单插件中的 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' } ]

谢谢,布赖恩

4

4 回答 4

16

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

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';

我希望这对其他人有帮助。

于 2008-10-29T17:55:02.820 回答
7

这可以:

formData.push({ "name": "__MVCASYNCPOST", "value": "true" });
于 2009-11-02T03:43:55.247 回答
1

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

于 2014-02-24T11:14:50.343 回答
0

出于某种原因,当我遇到此问题时,更改 beforeSubmit 回调中的数据对我不起作用。

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

于 2010-02-08T12:45:25.740 回答