2012-07-03 4 views
0

Я использую функцию jQuery serialize() для сбора данных в форме и отправки на сервер с использованием jQuery Ajax «post», например: var params = jQuery('#mainContent form').serialize();.
Странная вещь, которую я видел, это сериализованные данные из моей формы, содержащие старые данные. Это означает, что все мои изменения в форме (ввод в текстовое поле, выберите в комбинированном поле) не сохраняются в DOM, поэтому, когда jQuery вызывает serialize(), он собирает старые данные, которые появились до того, как я изменил форму. Я попытался проверить каждый элемент в этой форме и позвонить .val(), он по-прежнему показывает старые значения.
Так как я могу сохранить все свои изменения в форме, что метод serialize() может построить строку с новыми данными, которые я ввел?
Вот мой фрагмент кода, я назвал serialize() внутри представить обработчикjQuery: Сохранение значений формы перед сериализацией?

jQuery('.myFormDiv input.submit').click(function() { 
    // Do something 
    // Collect data in form 
    var params = jQuery('#mainContent form').serialize(); 
    // Submit to server 
    jQuery.post(url, params, successHandler); 
} 

Благодарю вас так много.

+0

Вы можете загрузить свой код (или упрощенную версию) в jsfiddle? – Samuel

+0

Вы называете '$ (document) .ready'? – undefined

ответ

2

Когда вы вызываете сериализацию? он должен быть $ ('form'). submit ([здесь]); Похоже, что он вызывается при загрузке страницы, прежде чем вводить значения в поля, а затем использоваться после.

EDIT:

используя submit event вместо по щелчку будет поймать кого-то ударяя ввести в текстовое поле.

jQuery('#mainContent form').submit(function() { 
    // Collect data in form 
    var params = jQuery(this).serialize(); 
    // Submit to server 
    jQuery.post(url, params, successHandler); 
} 

* вышеуказанный код предполагает, что url задает и successHandler является функцией.

+0

Хотя полезно использовать событие отправки формы, а не событие щелчка кнопки отправки, это вряд ли повлияет на значения в сериализованной форме - не должно быть многого между нажатием кнопки отправки и формой, являющейся Отправлено. Хотя это будет гарантировать, что OP не отправит неправильную форму с кнопки, поскольку селектора отличаются. – RobG

+0

@ RobG Действительно. Как я уже сказал, звучит так, что сериализация вызывается при загрузке страницы или в какой-то момент. Просто давая полный пример того, как я упомянул это. – Samuel

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