2008-10-29 2 views
7

У меня есть форма, которую я представляю с помощью функции ajaxSubmit jQuery из плагина Forms. Я пытаюсь добавить пару форму/значение формы в данные формы непосредственно перед отправкой. Мой план - изменить данные формы в обработчике события beforeSubmit.Изменение значений формы с помощью beforeSubmit с jQuery ajaxSubmit?

Учитывая функцию, которая выглядит как:

function handleActionFormBeforeSubmit(formData, form, options) { 
    // Add a name/value pair here somehow to formData 
} 

Как добавить простую пару к FormData? Это массив в виде:

[ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ] 

Спасибо, Brian

ответ

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

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

+0

Спасибо ... это помогло мне – 2010-01-29 19:45:37

7

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

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

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

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

1

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

Смежные вопросы