0

我正在使用 jQuery serialize() 函数在表单中收集数据并使用 jQuery Ajax“post”方法提交到服务器,如下所示:var params = jQuery('#mainContent form').serialize();.
我看到的奇怪的事情是我表单中的序列化数据包含旧数据。这意味着,我对表单的所有更改(输入到文本字段,在组合框上选择)都不会存储到 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);  
}

太感谢了。

4

1 回答 1

2

你什么时候调用序列化?它应该是 $('form').submit( [这里] ); 听起来它在页面加载时被调用,在您将值输入字段之前,然后在之后使用。

编辑:

使用提交事件而不是点击会捕捉到有人在文本字段中输入。

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

*上面的代码假设 url 是定义的,successHandler 是一个函数。

于 2012-07-03T03:36:08.267 回答