如何防止提交按钮

时间:2016-01-12 11:25:12

标签: jquery

这是我的'custForgotPass'输入按钮。 当我点击按钮时,我会验证电子邮件并发送它。 在双击时,它会发送两封电子邮件 我想阻止双击。 没有什么对我有用,例如。禁用按钮,jQuery.on事件,禁用dbclick事件。

$('#custForgotPass').click(function(event) {
event.preventDefault();
$("#txtForgotEmail").focus(function() {
    $(this).parent().find('div').css('display', 'none')
});
var forgotEmail = $('input#txtForgotEmail').val();
var isOk = true;
if (forgotEmail.trim() == '') {
    $('input#txtForgotEmail').parent().find('div').find('div').text('required');
    $('input#txtForgotEmail').parent().find('div').css('display', 'block')
    isOk = false;
} else {
    var pattern = "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$";
    if (forgotEmail.match(pattern)) {
        $('input#txtForgotEmail').parent().find('div').find('div').text('invalid');
        $('input#txtForgotEmail').parent().find('div').css('display', 'block')
        isOk = false;
    }
}
if (!isOk) {
    return;
}
//$(this).attr('disabled', 'disabled');
var success = '';
var posting = $.post('process/forgot_password.aspx', {
    forgotEmail: encodeURIComponent(forgotEmail)
});
posting.done(function(data) {
    var content = $(data);
    if (data == 'Error') {
        $('#forgot-msg-success').empty().append('Sorry there is technical problem try later.');
        $('#forgot-msg-success').css('display', 'block').fadeIn(600).fadeOut(600).fadeIn(600);
    } else if (data == 'Invalid') {
        $('#forgot-msg-success').empty().append('Invalid email pls try again.');
        $('#forgot-msg-success').css('display', 'block').fadeIn(600).fadeOut(600).fadeIn(600);
    } else {
        $('input#txtForgotEmail').val("");
        $('#forgot-msg-success').empty().append('Password sent on your email address.');
        $('#forgot-msg-success').css('display', 'block').fadeIn(600).fadeOut(600).fadeIn(600);
    }
});
});
});

4 个答案:

答案 0 :(得分:1)

在内部回调后删除ID作为click事件的处理程序,并在整个处理完成后添加它。

 $("#submit").on('click', function (event) {  
      $(this).removeAttr('id');
      //do something
      $(this).attr('id', 'submit');
 });

答案 1 :(得分:0)

使用one

$('#custForgotPass').one('click',function (event) {
 //code
}

但你需要稍后再重新安装。

答案 2 :(得分:0)

$(document).ready(function () {
    $("#submit").one('click', function (event) {  
       event.preventDefault();
       //do something
       $(this).prop('disabled', true);
    });
})

答案 3 :(得分:0)

您可以使用.unbind()

  

例如:

$(".classname").unbind().click(function(event,ui){ ...