jQuery Ajax Save - 页面可见/页面闪烁

时间:2013-08-09 19:57:33

标签: jquery ajax browser

我在jQuery中有以下Ajax代码,它使用save.php页面将数据从表单保存到MySQL数据库:

    $('#frmSurvey').append("<input type='hidden' name='page' value='"+$page+"' />"); // NOTE: this is done before the submit.

    document.frmSurvey.submit(); // There is some validation done and then the submit is called

    var url = "save.php"; // the script where you handle the form input.

    $.ajax({
           type: "POST",
           url: url,
           data: $("#frmSurvey").serialize(), // serializes the form's elements.
           success: function(data)
           {
               alert(data); // show response from the php script.
           }
         });

HTML:

<form id="frmSurvey" name="frmSurvey" action="save.php" method="post" onsubmit="return false">

希望一切都有意义。

我知道对save.php页面的Ajax调用意味着用户看不到页面,而是在后台发生。但是,save.php页面仍会在网址栏中显示一两秒钟 - 这是否正确 - 是否有任何方法可以阻止这种情况发生?

1 个答案:

答案 0 :(得分:1)

导航到另一个URL的原因是因为您实际在使用document.frmSurvey.submit();进行AJAX调用之前正在进行正确的表单提交 - 实际上这会阻止发生AJAX请求,因为导航到表单操作URL会停止从当前页面进行JS处理。

如果删除该行,您的表单将通过AJAX提交而不进行任何重定向。