我正在使用 twitter 引导程序在模态中使用忘记的用户名功能。单击提交按钮时,我需要运行一些验证,如果验证通过,请确保脚本的其余部分只执行一次。
我熟悉该.one()
功能,并尝试$(this).one('click', function()
在该if(isValid)
部分中使用,但没有成功。我也在.addClass("disabled");
验证检查后添加了没有运气。
这是 javascript 块的简化版本:
$('#btnForgotUsername').live('click', function (e) {
// Clear the error div of any previous errors
$('#vsForgotUsername').hide().empty();
var isValid = true;
// Must Enter Email Address
var emailEntered = $('#txtEmailAddress').val();
if (!$.trim(emailEntered).length) {
$('#vsForgotUsername').append('Email address required');
isValid = false;
}
else {
// If Email Entered verify that it is a valid email address
if (!validateEmail(emailEntered)) {
$('#vsForgotUsername').append('Enter valid email address.');
isValid = false;
}
}
if (isValid) {
$('#btnForgotUsername').addClass("disabled");
var proxy = new serviceProxy('/Login.aspx/', { async: true });
proxy.invoke
(
'forgotUser',
{
emailAddress: $('#txtEmailAddress').val()
},
function (result) {
if (result.d == true) {
$('#pnlForgotUsername, #btnForgotUsername').hide();
$('#pnlForgotUsernameSuccess').fadeIn();
return;
}
else {
$('#btnForgotUsername').removeClass("disabled");
$('#vsForgotUsername').fadeIn().append("We do not have a record with that email address.");
}
},
function (jqXHR, textStatus, errorThrown) {
},
null
);
}
else {
$('#vsForgotUsername').fadeIn();
}
});
有人可以帮我找到一种方法来完成验证,并且如果验证 = true,则只执行一次 ajax?