jQuery:在序列化之前保留表单值?

时间:2012-07-03 03:21:53

标签: javascript jquery serialization

我正在使用jQuery serialize()函数来收集表单中的数据并使用jQuery Ajax“post”方法提交给服务器,如下所示:var params = jQuery('#mainContent form').serialize();
我看到的奇怪的事情是我的表单中的序列化数据包含旧数据。这意味着,我在表单中的所有更改(输入到text-field,select on combo-box)都没有存储到DOM,所以当jQuery调用serialize()时,它会收集在我更改表单之前出现的旧数据。我尝试检查该表单中的每个元素并调用.val(),它仍显示旧值 那么我怎样才能坚持我的所有更改,serialize()方法可以使用我输入的最新数据构建字符串?
这是我的代码段代码,我在提交处理程序

中调用了serialize()
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);  
}

非常感谢你。

1 个答案:

答案 0 :(得分:2)

你什么时候打电话给序列号?它应该是$('form')。submit([here]);听起来它是在页面加载时被调用,然后在字段中输入值,然后在之后使用。

编辑:

使用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是define而successHandler是一个函数。