在$.ajax中替换异步:false

在$.ajax中替换异步:false,ajax,form-submit,Ajax,Form Submit,我有一个表单,将数据提交到数据库,然后提交到谷歌文档。 我使用jQueryAjax来实现这一点。 javascript: var name ="a"; var company = "b"; var phone = "1"; ... $.ajax({ async: false,

我有一个表单,将数据提交到数据库,然后提交到谷歌文档。 我使用jQueryAjax来实现这一点。 javascript:

              var name ="a";
              var company = "b";
              var phone = "1";
                ...

              $.ajax({
                    async: false,
                    url: "view/templates/includes/abc.php",
                    //type: 'POST',
                    //timeout: 10000,
                    data: {
                          "name": name,
                          "company": company,
                          "phone": phone,
                          "email": email,
                          "comments": comments
                    },
                    success: function(data) {
                          //called when successful
                          alert(data);
                          //alert('success');
                          $('#php-code').html(data);
                    },
                    error: function(e) {
                          //  alert(e.message);
                          //called when there is an error
                          //console.log(e.message);
                    }
              });
              return true;
        }
php是我将数据插入数据库的代码所在

现在的问题是我不想使用async:false,因为我读到它不应该被使用,因为它可能会导致浏览器挂起,破坏使用ajax的目的。但是,如果我不使用async:false,表单会在ajax响应到来之前提交,因此它总是转到错误函数


我该怎么做才能不使用async:false

您可以在提交时调用ajax函数

您可能希望在活动中停止提交表单(可能需要单击按钮)

在ajax成功方法中,显式提交表单。 (可以使用jQuery-
$(“#id_of_form”).submit()

例:可以按照步骤进行操作

$('#id_button_submit').click(function(event){
// this will prevent form to be submitted
             event.preventDefault();
              // call the function of ajax 
              serviceCall();
          });
在ajax的成功方法中

success: function(data) {
         $('#id_of_form').submit();
         // rest of your code
},

或者jQuery插件可能对您有用

您可以在提交时调用ajax函数

您可能希望在活动中停止提交表单(可能需要单击按钮)

在ajax成功方法中,显式提交表单。 (可以使用jQuery-
$(“#id_of_form”).submit()

例:可以按照步骤进行操作

$('#id_button_submit').click(function(event){
// this will prevent form to be submitted
             event.preventDefault();
              // call the function of ajax 
              serviceCall();
          });
在ajax的成功方法中

success: function(data) {
         $('#id_of_form').submit();
         // rest of your code
},

或者jQuery插件可能对您有用

input type=“submit”或type=“button”?
type=“button”
因为提供
type=“submit”
将提交您的表单,您不希望这样,您希望在表单成功后提交表单。尽管代码阻止了默认行为,(即,提交按钮的默认行为是-提交表单)因此您可以使用任何东西。您是否绑定了按钮的事件?或者您是如何提交表单的?让我们输入type=“submit”或type=“button”?
type=“button”
,因为提供了
type=“submit”
将提交您的表单,您不希望这样,您希望在表单成功后提交表单。虽然代码阻止了默认行为(即提交按钮的默认行为是-提交表单),因此您可以使用任何东西。您是否绑定了按钮事件?或者您如何提交表单?让我们