尝试使用$ .post提交表单。它可以工作,但回调函数不会触发

时间:2015-07-16 14:14:11

标签: jquery forms

我有一个表单,我想在不重定向页面的情况下提交。它主要起作用,但我想在点击后禁用提交按钮。

<form name="confirm" id="confirm" method="post" action="confirm.php"
      style="margin:0; display:inline-block">
    <input type="text" class="form-control" name="email" id="email"
           style="display: inline-block; width:unset;">
    <button class="btn btn-primary" id="bttnSubmit" value="submit">Send Email</button>
</form>

$(document).ready(function(){
    var $form = $('form');
    $form.submit(function(){
        $.post($(this).attr('action'), $(this).serialize(), function(response) {
            $("#bttnSubmit").removeClass('btn-primary')
                            .attr("disabled","disabled");
        },'json');
        return false;
    });
});

2 个答案:

答案 0 :(得分:1)

问题是您只有在帖子完成后才会禁用该按钮。即您在响应回调中执行禁用。到达回电话时,帖子结束了。移动

的位置
$("#bttnSubmit").removeClass('btn-primary')
                            .attr("disabled","disabled");

在你的回复之外回电

$(document).ready(function(){
    var $form = $('form');
    $form.submit(function(){
        $.post($(this).attr('action'), $(this).serialize(), function(response) {

        },'json');

        $("#bttnSubmit").removeClass('btn-primary')
                            .attr("disabled","disabled");

        return false;
    });
});

答案 1 :(得分:0)

您是否在$ .post?

之前尝试使用event.preventDefault()