Javascript HTML表单提交之前的Ajax(异步)

Javascript HTML表单提交之前的Ajax(异步),javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,但是表单在Ajax完成之前就已经提交了,我如何确保表单在Ajax完成之后提交呢 我想保留用户启动的表单submit事件,而不是代码,例如$(“#myForm”).trigger('submit'),因为我不希望浏览器阻止新的窗口选项卡。为什么不在页面加载时使用ajax值,然后提交数据 $("#myForm").submit(function (e) { var $this = $(this); someAjaxFunction(function (data) { $this.fi

但是表单在Ajax完成之前就已经提交了,我如何确保表单在Ajax完成之后提交呢


我想保留用户启动的表单
submit
事件,而不是代码,例如
$(“#myForm”).trigger('submit'),因为我不希望浏览器阻止新的窗口选项卡。

为什么不在页面加载时使用ajax值,然后提交数据

$("#myForm").submit(function (e) {
  var $this = $(this);
  someAjaxFunction(function (data) {
    $this.find('input[name="someName"]').val(data.value);
  });
});
$("#myForm").submit(function (e) {
  var $this = $(this);
  someAjaxFunction(function (data) {
    $this.find('input[name="someName"]').val(data.value);
    // submit form without triggering jquery handler
    $this[0].submit(); 
  });
  // cancel the current submission
  return false;
});
或者将ajax调用放在click事件上,并在值更新时提交:

$(function(){
     someAjaxFunction(function (data) {
        $('input[name="someName"]').val(data.value);
      });
    $("#myForm button").on('click',function(){
      $(this).submit(); 
    });
    });

为什么不在页面加载时使用ajax值,然后提交数据

$("#myForm").submit(function (e) {
  var $this = $(this);
  someAjaxFunction(function (data) {
    $this.find('input[name="someName"]').val(data.value);
    // submit form without triggering jquery handler
    $this[0].submit(); 
  });
  // cancel the current submission
  return false;
});
或者将ajax调用放在click事件上,并在值更新时提交:

$(function(){
     someAjaxFunction(function (data) {
        $('input[name="someName"]').val(data.value);
      });
    $("#myForm button").on('click',function(){
      $(this).submit(); 
    });
    });

$this[0]。提交()
会导致新窗口被浏览器阻塞,我认为只有当事件由用户触发时,新窗口才会被阻塞,例如鼠标单击submit按钮。
$this[0].submit()
会导致新窗口被浏览器阻塞,我认为只有当事件由用户触发时,新窗口才会被阻塞,例如鼠标单击submit按钮。因为我会在
someAjaxFunction
中执行某些操作,它应该在表单提交之前完成。因为我会在
someAjaxFunction
中做一些事情,而且应该在表单提交之前完成。