Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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表单提交Ajax有时不起作用_Javascript_Jquery_Ajax_Forms - Fatal编程技术网

Javascript 使用jQuery表单提交Ajax有时不起作用

Javascript 使用jQuery表单提交Ajax有时不起作用,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,我正在使用Ajax和jQuery进行表单数据提交。 当我在弹出窗口中提交表单时,我刷新父页面。 我的代码: 然而,当回调成功时,页面被刷新,但我在父页面上看不到更新。有时我能看到更新,有时看不到。问题是什么?我还需要知道如何用本机javascript编写它,并使用ajax javascript提交表单。可能是因为javascript是异步的,即使您尚未收到请求的响应,您的代码也会继续运行,所以您会出现此错误 试试这个: $(document).ready(function() {

我正在使用Ajax和jQuery进行表单数据提交。 当我在弹出窗口中提交表单时,我刷新父页面。 我的代码:


然而,当回调成功时,页面被刷新,但我在父页面上看不到更新。有时我能看到更新,有时看不到。问题是什么?我还需要知道如何用本机javascript编写它,并使用ajax javascript提交表单。

可能是因为javascript是异步的,即使您尚未收到请求的响应,您的代码也会继续运行,所以您会出现此错误

试试这个:

$(document).ready(function() {
        $("#frm_addSpeedData").submit(function(event) {  
        //event.preventDefault();
        $.ajax({
             type: "POST", 
              url: "/webfdms/addSpeedDataAction.do", 
              data: $(this).serialize(),
              async: false, // This will only proceed after getting the response from the ajax request.
              success: function(data) {
                //console.log("Data: " + data);
                window.opener.location.reload(); 
              }
            });
        });
    });

但我可以看到页面正在刷新。这意味着ajax调用已经成功。问题是:假设您有一个验证,其中if字段“X”是数据库中的唯一值。当您运行AJAX来验证它时,您必须从数据库中获取数据,然后验证它是否唯一。如果请求需要很长时间,它可能会在不验证字段的情况下继续提交。如果我不清楚,请告诉我。在本例中,我无法复制该错误,因此使我更加困难。问题是什么?取消对该部分事件的注释。preventDefault();您必须防止submit函数的默认行为,否则使用ajax毫无乐趣。@psylogic它做什么?您是否使用firebug调试ajax方法调用返回200确定?是。还200好,我看得出来
$(document).ready(function() {
        $("#frm_addSpeedData").submit(function(event) {  
        //event.preventDefault();
        $.ajax({
             type: "POST", 
              url: "/webfdms/addSpeedDataAction.do", 
              data: $(this).serialize(),
              async: false, // This will only proceed after getting the response from the ajax request.
              success: function(data) {
                //console.log("Data: " + data);
                window.opener.location.reload(); 
              }
            });
        });
    });