Изменение значений формы с beforeSubmit с помощью jQuery ajaxSubmit? - PullRequest
7 голосов
/ 29 октября 2008

У меня есть форма, которую я отправляю, используя функцию jjuery 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' } ]

Спасибо, Brian

Ответы [ 4 ]

16 голосов
/ 29 октября 2008

После часа экспериментирования я придумал решение. Чтобы добавить значение к данным формы, будет работать следующий код.

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

Надеюсь, это поможет кому-то еще.

7 голосов
/ 02 ноября 2009

Это нормально:

formData.push({ "name": "__MVCASYNCPOST", "value": "true" });
1 голос
/ 24 февраля 2014

formData [0] .value = 'новое значение'; отлично работает в AjaxSubmit (). Я реализовал то же самое при загрузке содержимого файла динамически. Раньше, через столько времени, форма отправляет пустые данные на сервер, поэтому этот код полезно изменить, прежде чем отправлять форму.

0 голосов
/ 08 февраля 2010

По какой-то причине изменение данных в обратном вызове beforeSubmit мне не помогло, когда я столкнулся с этой проблемой.

Однако назначение объекта «данным» в параметрах формы привело к добавлению этого объекта к сериализованным данным. Это явно не задокументировано на веб-сайте формы jquery, но является частью базового метода $ .ajax.

...