首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在服务器验证后关闭jquery弹出窗口

问如何在服务器验证后关闭jquery弹出窗口
EN

Stack Overflow用户
提问于 2012-09-02 02:27:26
回答 4查看 1.1K关注 0票数 0

我正在做一个使用ASP.net的网站,我想用JQuery ModalDialog (或ajax…我不太了解ajax)做一个很好的登录弹出窗口。我有一个包含每个允许的用户的数据库,如果用户成功登录,我想关闭弹出窗口(如果没有,我希望弹出窗口留下来,并显示错误消息)。问题是我的验证是在服务器端完成的,而JQuery是在客户端运行的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-02 02:30:46

最简单的方法是从对话框内部进行jQuery ajax调用,然后在后台代码中的way方法侦听此ajax,该way方法将返回登录成功或不成功,然后您可以处理删除对话框客户端的操作

我将为您获取一些示例代码

代码语言:javascript
复制
        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;
        }
    }

代码隐藏:

代码语言:javascript
复制
       <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

THat在VB.Net中,但是您可以理解

票数 2
EN

Stack Overflow用户

发布于 2012-09-02 02:40:03

这取决于弹出窗口所使用的jquery插件。

基本上,您需要获得弹出窗口的句柄。这个插件应该有一个close函数,你需要在你的服务器成功响应后调用它。大多数插件通常都有类似$("#pop_up_id").close();的东西

票数 0
EN

Stack Overflow用户

发布于 2012-09-02 02:43:07

在服务器端创建一个返回字符串的web方法

代码语言:javascript
复制
If successful login it will return 'success'
or if invalid login it willl return 'fail'

现在在客户端,使用jQuery ajax函数对方法进行ajax调用,如下所示

代码语言:javascript
复制
$.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')}

}
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12230286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档