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

Bri*_*nga 7 jquery jquery-forms-plugin

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

给定一个看起来像这样的函数:

function handleActionFormBeforeSubmit(formData, form, options) {
    // Add a name/value pair here somehow to formData
}
Run Code Online (Sandbox Code Playgroud)

如何向formData添加简单对?它是以下形式的数组:

[ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
Run Code Online (Sandbox Code Playgroud)

谢谢,Brian

Bri*_*nga 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" };
}
Run Code Online (Sandbox Code Playgroud)

如果您知道要更改的值的索引,也可以修改数据,例如:

formData[0].value = 'new value';
Run Code Online (Sandbox Code Playgroud)

我希望这有助于其他人.


小智 7

这可以:

formData.push({ "name": "__MVCASYNCPOST", "value": "true" });
Run Code Online (Sandbox Code Playgroud)