我有一个带有 OnClientClick 和 OnClick 事件的图像按钮。
<asp:ImageButton ImageUrl="./../../images/login.gif" Style="margin-right: 153px;"
runat="server" OnClientClick="return SendLoginData();" OnClick="Login_Click" />
OnClientClick,我在使用 $.post() 函数的地方调用了一些客户端函数 SendLoginData()。
function SendLoginData() {
var flagLogin = "0";
if (LoginValidation() != false) {
$.post(window.location,
{
LOGIN: "LOGIN",
UserName: $.trim($('#txtUserNameLogin').val()),
Password: $.trim($('#txtPasswordLogin').val())
},
function (data) {
var d = $(data).find('#<%=lblMessageLogin.ClientID %>');
if ($(d).html() == "SUCCESS") {
flagLogin = "1";
}
else {
$('#lblErrorMsgLogin').html(d.html());
}
}
);
}
//alert(flagLogin);
if (flagLogin == "1") {
return true;
}
else {
return false;
}
}
Afer $.post() 当我得到响应为“SUCCESS”时,我想向客户端函数 SendLoginData 返回 true。这样我的服务器端 onClick 就可以工作了。
但我面临一个问题。你可以看到有一个被注释的警报 (//alert(flagLogin);)。
如果我取消注释警报,则 if (flagLogin == "1") 条件有效。而如果我按照评论留下警报,那么 if (flagLogin == "1") 不起作用。
有人可以解释我该如何处理这种情况,这背后的原因是什么?