$ .post()没时间运行?

Sam*_*son 3 javascript ajax jquery post

我正在尝试在提交表单之前将数据从表单发送到外部脚本,但我似乎无法获取数据到达外部脚本,除非我return false;在表单上.

$(document).ready(function () {

  // Handle Form-Submission
  $("#mainForm").submit(function () {

    // Reset Error Array
    errors = new Array();

    /* Validation Code Removed - Not Relevant */        

    // Check if errors exist
    if (errors.length > 0) {
      return false;
    } else {
      $("div.errors").html("");
      $.post("post.php",{
        "First Name": name_first.val(),
        "Last Name": name_last.val(),
        "Home State": home_state.val(),
        "Primary Email": email_primary.val()
      });
    }
    return false; /* Remove this line, and the $.post won't work. */
  });
});
Run Code Online (Sandbox Code Playgroud)

Pet*_*r J 8

我今天碰到了同样的问题.就像Marc所说,这是因为ajax调用是异步的.最简单的解决方法是使其同步.

在任何ajax调用之前使用.ajaxSetup():

$.ajaxSetup({async: false});
Run Code Online (Sandbox Code Playgroud)

  • 小心同步 - 它将阻止UI,直到POST返回! (2认同)