【问题标题】:jQuery Ajax form only submits after clicking twicejQuery Ajax 表单仅在单击两次后提交
【发布时间】:2013-09-04 07:57:19
【问题描述】:

我有一个表单,提交时会检查帐号是否有效(通过 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()
  }

  });

});

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

【问题讨论】:

  • 嗨,你可以用 else 代替 else if(data === 'valid')
  • 您是否单击并等待几秒钟以确保$.post 已完成?
  • 是的,我等了超过一分钟。第一次点击还是不行。

标签: jquery ajax form-submit preventdefault


【解决方案1】:
$('#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();
        }
    });
});

使用此代码并对 HTML 进行一些更改 将提交按钮的 type="submit" 更改为 type="button"

【讨论】:

【解决方案2】:

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

$('#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();
  }

  });

}); 

【讨论】:

  • 试过这个。它不工作。即使数据有效,它也不会提交表单。
猜你喜欢
  • 2013-12-10
  • 1970-01-01
  • 1970-01-01
  • 2011-06-17
  • 2016-01-21
  • 2014-12-03
  • 2015-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多