我有一個圖像按鈕OnClientClick和OnClick事件。
<asp:ImageButton ImageUrl="./../../images/login.gif" Style="margin-right: 153px;"
runat="server" OnClientClick="return SendLoginData();" OnClick="Login_Click" />
的OnClientClick,我調用一些客戶端功能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 $。員額()當我得到響應爲「成功」,我想回到真正的客戶端功能SendLoginData。 因此,我的服務器端onClick可以工作。
但是我面臨着一個問題。 你可以看到有一個警報被評論(// alert(flagLogin);)。
如果我取消註釋警報,那麼如果(flagLogin ==「1」)條件起作用。而如果我留下警報作爲評論,然後如果(flagLogin ==「1」)不起作用。
有人可以解釋我該如何處理這種情況,這背後的原因是什麼?
'$ .post'後面的代碼在'$ .post'回調中的代碼之前執行。考慮閱讀關於AJAX的教程。 – Esailija
也有很大的安全性問題,請參閱我的回答(最後編輯) – Cranio