我正在开发一个忘记用户名的函数,它是一个使用twitter bootstrap的模式。当单击Submit按钮时,我需要运行一些验证,如果验证通过,请确保脚本的其余部分只执行一次。
我熟悉.one()函数,并曾尝试在if(isValid)部分中使用$(this).one('click', function(),但没有成功。我还在验证检查后添加了.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吗?
发布于 2013-03-01 04:18:09
嗯。老实说,我不完全清楚你需要什么,但尝试明确地设置按钮的属性(我假设它是一个按钮)。
$('#btnForgotUsername').prop('disabled', true);此外,我会添加一个.data到成功,然后只是测试它的ie。
$("body").data("ajaxSuccess", "true");https://stackoverflow.com/questions/15144628
复制相似问题