jQuery Ajax表单仅在单击两次后提交

jQuery Ajax表单仅在单击两次后提交,jquery,ajax,form-submit,preventdefault,Jquery,Ajax,Form Submit,Preventdefault,我有一个表单,提交时检查账号是否有效(通过AJAX) 如果无效,则显示错误消息。这很好用 如果有效,则应提交表格。它提交,但仅在单击提交按钮两次后提交 $('#account_validation_form').on('submit', function(e){ e.preventDefault(); var payers_account = $("input[name='payers_account']").val(); $.post('ajax.php', {pay

我有一个表单,提交时检查账号是否有效(通过AJAX)

如果无效,则显示错误消息。这很好用

如果有效,则应提交表格。它提交,但仅在单击提交按钮两次后提交

$('#account_validation_form').on('submit', function(e){

    e.preventDefault();

    var payers_account = $("input[name='payers_account']").val();

  $.post('ajax.php', {payers_account:payers_account}, function(data){

  if(data === 'invalid'){
     $(".account_invalid_message").html("<p>Given Account Number is invalid</p>");
  }

  else if(data === 'valid'){
     $("#account_validation_form").unbind('submit').submit()
  }

  });

});
$(“#账户(验证)表格”)。在('submit',函数(e)上{
e、 预防默认值();
var payers_account=$(“输入[name='payers_account']”)val();
$.post('ajax.php',{payers\u account:payers\u account},函数(数据){
如果(数据=='无效'){
$(“.account\u invalid\u message”).html(“给定的帐号无效”

”; } else if(数据=='valid'){ $(“#账户(验证)表格”)。取消绑定('submit')。提交() } }); });

我知道在那里调用
e.preventDefault()
有问题。但这是必要的,不能放在AJAX回调中。那么解决这个问题的方法是什么呢?

尝试绑定表单post以提交按钮单击事件: 即:

$('submit#button_id')。在('click',函数(e)上{
var payers_account=$(“输入[name='payers_account']”)val();
$.post('ajax.php',{payment\u amount:payment\u amount,payers\u account:payers\u account,},函数(数据){
如果(数据=='无效'){
$(“.account\u invalid\u message”).html(“给定的帐号无效”

”; } else if(数据=='valid'){ $(“#账户验证表”).submit(); } }); });
尝试绑定表单post以提交按钮单击事件: 即:

$('submit#button_id')。在('click',函数(e)上{
var payers_account=$(“输入[name='payers_account']”)val();
$.post('ajax.php',{payment\u amount:payment\u amount,payers\u account:payers\u account,},函数(数据){
如果(数据=='无效'){
$(“.account\u invalid\u message”).html(“给定的帐号无效”

”; } else if(数据=='valid'){ $(“#账户验证表”).submit(); } }); });
$(“#提交按钮_id”)。在('click',函数(e)
{
var payers_account=$(“输入[name='payers_account']”)val();
$.post('ajax.php',
{
付款金额:付款金额,
付款人账户:付款人账户,
},函数(数据)
{
如果(数据=='无效')
{
$(“.account\u invalid\u message”).html(“给定的帐号无效”

”; } else if(数据=='valid') { $(“#账户验证表”).submit(); } }); });
使用此代码并对HTML进行一些更改 将提交按钮的type=“submit”更改为type=“button”

$(“#submit_button_id”)。在('click',函数(e)
{
var payers_account=$(“输入[name='payers_account']”)val();
$.post('ajax.php',
{
付款金额:付款金额,
付款人账户:付款人账户,
},函数(数据)
{
如果(数据=='无效')
{
$(“.account\u invalid\u message”).html(“给定的帐号无效”

”; } else if(数据=='valid') { $(“#账户验证表”).submit(); } }); });
使用此代码并对HTML进行一些更改
将提交按钮的type=“submit”更改为type=“button”

您好,如果(数据=='valid')您单击并等待几秒钟以确保
$.post
已完成,您可以使用else而不是else?是的,我等待了一分钟多。first click中仍然不起作用。您好,如果(数据=='valid')您单击并等待几秒钟以确保
$。post
已完成,则可以使用else而不是else。是的,我等待了一分钟多。在第一次单击中仍然不起作用。请尝试此操作。它不起作用。即使数据有效,它也不会提交表单。请尝试此操作。它不起作用。即使数据有效,它也不会提交表单。请查看我的问题。请查看我的问题
$('#submit_button_id').on('click', function(e){



    var payers_account = $("input[name='payers_account']").val();

  $.post('ajax.php', {payment_amount:payment_amount, payers_account:payers_account,}, function(data){

  if(data === 'invalid'){
     $(".account_invalid_message").html("<p>Given Account Number is invalid</p>");
  }

  else if(data === 'valid'){
     $("#account_validation_form").submit();
  }

  });

}); 
$('#submit_button_id').on('click', function(e)
{
    var payers_account = $("input[name='payers_account']").val();
    $.post('ajax.php',
    {
        payment_amount: payment_amount,
        payers_account: payers_account,
    }, function(data)
    {
        if (data === 'invalid')
        {
            $(".account_invalid_message").html("<p>Given Account Number is invalid</p>");
        }
        else if (data === 'valid')
        {
            $("#account_validation_form").submit();
        }
    });
});