Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:在序列化之前持久化表单值?_Javascript_Jquery_Serialization - Fatal编程技术网

Javascript jQuery:在序列化之前持久化表单值?

Javascript jQuery:在序列化之前持久化表单值?,javascript,jquery,serialization,Javascript,Jquery,Serialization,我使用jQuerySerialize函数收集表单中的数据,并使用jQueryAJAXPOST方法提交给服务器,如下所示:var params=jQuery'mainContentForm'.serialize;。 奇怪的是,我看到表单中的序列化数据包含旧数据。这意味着,我在表单输入到文本字段、选择组合框中的所有更改都不会存储到DOM中,因此当jQuery调用serialize时,它会收集在我更改表单之前出现的旧数据。我试图检查表单中的每个元素并调用.val,它仍然显示旧的值。 那么,如何将所有更

我使用jQuerySerialize函数收集表单中的数据,并使用jQueryAJAXPOST方法提交给服务器,如下所示:var params=jQuery'mainContentForm'.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);  
}

非常感谢。

您什么时候打电话给serialize?它应该是$'form'。提交[此处];这听起来像是在页面加载时调用的,在您将值输入到字段之前,然后在之后使用

编辑:

使用而不是单击将捕捉到有人在文本字段中按enter键

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是一个函数。

您可以将您的代码或简化版本上载到JSFIDLE吗?您是否调用$document.ready?尽管使用表单的提交事件而不是提交按钮的单击事件很好,它不太可能对序列化表单中的值产生任何影响。在单击submit按钮和正在提交的表单之间不应该发生太多事情。尽管这将确保OP不会从按钮提交错误的表单,因为选择器是不同的。@RobG。正如我所说的,听起来好像serialize是在页面加载时或之前某个时候被调用的。我只是举了一个完整的例子来说明我是如何做到这一点的。