我正在製作一個使用ASP.net的網站,並且我想用JQuery ModalDialog(或ajax做出一個很好的登錄彈出窗口...我對ajax瞭解不多) 。我有一個包含每個允許的用戶的數據庫,如果用戶成功登錄(如果沒有,我希望彈出窗口保留並顯示錯誤消息),我想關閉彈出窗口。問題是我的驗證在服務器端完成,JQuery在客戶端運行。如何在SERVER驗證後關閉jquery彈出窗口
回答
最簡單的方法是從你的對話框裏做一個jQuery的AJAX調用,然後在後面的代碼一個WebMethod監聽該阿賈克斯,將WebMethod將返回登錄成功,或失敗,你處理刪除對話框客戶端
我會得到一些示例代碼,您
function fnValidateLogIn() {
$('#<%= lblLoginMessage.ClientID %>').text("");
var email = $('#<%= txtEmail.ClientID %>').val();
var pass = $('#<%= txtPass.ClientID %>').val();
if (pass == "") {
$('#<%= lblLoginMessage.ClientID %>').text("Please Enter A Password");
return false;
}
else {
$.ajax({
type: "POST",
url: "Login.aspx/LoginUser",
data: "{'email':'" + email + "', 'pass' : '" + pass + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var obj = $.parseJSON(msg.d);
if (obj.login == "failed") $('#<%= lblLoginMessage.ClientID %>').text("Login Failed");
if (obj.login == "success") {
location.reload(true); //you can hide popup instead of refreshing
window.location = $('.hidden_url').text(); //you can hid popup instead of redirect
}
}
});
return false;
}
}
後面的代碼:
<System.Web.Services.WebMethod(EnableSession:=True)> _
Public Shared Function LoginUser(email As String, pass As String) As String
'code to validate user
return "{ ""login "" : ""success"" }" 'example
也就是說在VB.Net,但你可以得到的想法
我編輯了代碼,我選擇了在我的代碼中刷新,但這是您要處理要隱藏的彈出窗口的位置,並且將響應作爲json返回 - 只是一個字符串僅適用於一個參數,我的代碼中爲 –
這取決於你用於彈出的jQuery插件。
基本上你需要得到彈出的句柄。這個插件應該有一個關閉功能,你需要在你的服務器獲得成功的響應後調用它。大多數他的通常插件有一些像$("#pop_up_id").close();
在服務器端做一個Web方法,其在客戶端使用jQuery的AJAX功能使Ajax調用返回一個字符串,現在
If successful login it will return 'success'
or if invalid login it willl return 'fail'
到你的方法是這樣
$.ajax(
url:your.asmx/webmethod
data:{username:$('#usernametextboxid').val(),password:$('#passwordtextbox').val()
type:'POST'
dataType:'json'
success:function(data){
//logic to hide popup
if(data.d=='success'){$('#modalpopupid').close()}
else if(data.d=='fail'){$('#modalpopupid').html('Invalid login')}
else{alert('some error occured.Please try again')}
}
)
Scott Selby,在您的代碼中,您正在刷新頁面,這正在消除ajax的含義。只需調用插件的close()函數而不刷新頁面,就可以關閉模式窗口。
,我選擇了重定向到另一個頁面,但這是你隱藏對話框的地方 –
- 1. 如何在驗證後關閉Facebook彈出窗口?
- 2. dotnetopenauth - 驗證後彈出窗口不關閉
- 3. 如何在jQUERY關閉彈出窗口後刷新父頁面?
- 4. 彈出窗口:當彈出彈出窗口時關閉彈出
- 5. 如何打開彈出窗口並關閉彈出窗口?
- 6. 如何使用jQuery中的彈出窗口關閉colorbox窗口
- 7. 加載後關閉彈出窗口
- 8. 3秒後關閉彈出窗口
- 9. 調用後關閉彈出窗口
- 10. 關閉彈出窗口(div)jquery
- 11. 彈出窗口關閉
- 12. 關閉彈出窗口
- 13. 關閉AngularStrap彈出窗口
- 14. 要關閉彈出窗口
- 15. MessageDialog關閉彈出窗口
- 16. Javascript:關閉彈出窗口
- 17. 彈出窗口不關閉
- 18. 彈出窗口不關閉
- 19. 如何關閉彈出窗口?
- 20. 如何關閉模式彈出窗口?
- 21. Javascript:彈出窗口如何關閉?
- 22. 如何關閉彈出式窗口?
- 23. jquery:javascript驗證後彈出窗口
- 24. 7u21更新後彈出驗證窗口
- 25. 驗證時的jQuery彈出窗口
- 26. 在jQuery Mobile中,如何在出現5秒後關閉彈出窗口?
- 27. 彈出窗口的父窗口後不關閉在重裝
- 28. 如何打開彈出窗口並在關閉彈出窗口後在父窗口中完全回發
- 29. 在瀏覽器窗口關閉前顯示jQuery彈出窗口
- 30. 如何驗證MVC彈出窗口
你能提供一些代碼隊友嗎? – Littm