我正在使用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);
}
非常感谢你。
答案 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是一个函数。