OnClientClick および OnClick イベントを持つ画像ボタンが 1 つあります。
<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;
}
}
$.post() の後、"SUCCESS" というレスポンスが返ってきたら、クライアント側関数 SendLoginData に true を返したい。私のサーバー側のonClickが機能するように。
しかし、私は1つの問題に直面しています。コメントされた 1 つのアラートがあることがわかります ( //alert(flagLogin);)。
アラートのコメントを外すと、if (flagLogin == "1") 条件が機能します。一方、コメントとしてアラートを残した場合、if (flagLogin == "1") は機能しません。
誰かがこの状況をどのように処理できるか、またこの背後にある理由を説明できますか?