2016-01-12 3 views
0

Это моя кнопка ввода «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 = "^\[email protected][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); 
    } 
}); 
}); 
}); 
+0

Вы пытались удалить идентификатор '', когда ваш callback для события 'click' запускается и добавляет' ID', как только вы закончите с обработкой электронной почты? – Siddharth

+0

да, я хочу, чтобы пользователь должен щелкнуть одним кликом – Sud

+0

проверить мой ответ – Siddharth

ответ

0

использование one

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

но вы должны присоединиться позже.

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

Пожалуйста, объясните свои ответы –

0

Вы можете использовать .unbind()

НАПРИМЕР:

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

удалить ID, который ваш обработчик события щелчка, когда вы находитесь внутри обратного вызова и добавить его когда-то весь ваш обработка делается.

$("#submit").on('click', function (event) { 
     $(this).removeAttr('id'); 
     //do something 
     $(this).attr('id', 'submit'); 
}); 
Смежные вопросы