【问题标题】:how to refresh the page underneath after closing the modal?关闭模态后如何刷新下面的页面?
【发布时间】:2011-08-15 09:09:22
【问题描述】:

我的应用程序是这样的,用户填写表单,如果他没有登录或注册,一旦点击提交按钮,会出现一个包含注册字段的 jquery 模态框,在用户填写模态字段并单击后注册按钮,此模式关闭并插入新成员的注册详细信息。

现在的问题是,如何刷新同一个页面,在模态关闭后,让页面显示当前用户是注册会员?,我只想知道如何刷新下面的页面,,,

这是我目前拥有的

 if(userid == ""){
        $( "#dialog:ui-dialog" ).dialog( "destroy" );

        $( "#dialog-confirm" ).dialog({
            resizable: false,
            height: 230,
        width: 350,
            modal: true,
            buttons: {
                "Register": function(){
                    $(this).dialog("close");
                $('div#registerpopup').dialog({
                   resizable: false,
                   height: 485,
                   width: 420,
                   modal: true,
                   buttons: {
                        "Register": function(){
                            var username = $('#username').val();
                            var password = $('#password').val();
                            var retypepassword = $('#retypepassword').val();
                            var emailaddress = $('#emailaddress').val();
                            var secondaryemailaddress = $('#secondaryemailaddress').val();
                            var secretquestion = $('#secretquestion').val();
                            var secretanswer = $('#secretanswer').val();
                            var reffcode = $('#reffcode').val();
                            var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
                          if(username == "" || username.length < 1 || username.length > 30 || username.indexOf(' ') != -1){
                            alert("Username is required\n-should not be less than 1 character\n-should not be more than 30 characters\n-It may also not contain spaces");
                            return false;
                          }
                          if(password.length < 7 || password.indexOf(' ') !=  -1 ){
                            alert("Password should not be empty\n-should at least be 7 characters");
                            return false;
                          }
                          if(retypepassword != password){
                            alert("re-type password should be the same as the password!");
                            return false;
                          }
                          if(emailaddress == "" || emailaddress.search(emailRegEx) == -1){
                            alert("Email Address is required and should be a valid email address");
                            return false;
                          }
                          if(secondaryemailaddress == "" || secondaryemailaddress.search(emailRegEx) == -1){
                            alert("Secondary Email address should be the same as the primary email address!");
                            return false;
                          }
                          if(secretquestion == ""){
                            alert("Secret Question is required!");
                            return false;
                          }
                          if(secretanswer == ""){
                            alert("Secret Answer is required!");
                            return false;
                          }
                          if(reffcode == ""){
                            alert("Reference Code is required!");
                            return false;
                          }
                          else {
                            $.ajax({
                               type: "POST",
                               url: "classes/ajax.registerpopup.php",
                               timeout: 8000,
                               data: "username="+username+"&password="+password+"&emailaddress="+emailaddress+
                                     "&secondaryemailaddress="+secondaryemailaddress+"&secretquestion="+secretquestion+
                                     "&secretanswer="+secretanswer+"&reffcode="+reffcode,
                               success: function(){
                                 alert("You are now registered!");
                               }
                            });
                          }
                          $(this).dialog("close");
                        }
                   }
                });
                },
                "Log in": function() {
                    $(this).dialog("close");
                $('div#loginpopup').dialog({
                  resizable: false,
                  height: 230,
                  width: 350,
                  modal: true
                })
                }
            }
        });
    return false;
 }

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    如果你想刷新整个页面,你不能打电话吗

    window.location = 'pathToCurrentPage'
    

    模式关闭后?这将强制页面刷新。

    从用户体验的角度来看,最好只更新显示用户已登录的页面部分

    【讨论】:

    • 这其实是我的问题,页面右上角有一个登录框,我想在jquery modal关闭后刷新页面,有可能吗?比如显示当前注册用户为已登录?
    • 你的意思是,把window.location ='pathToCurrentPage'放在这一行下面? $(this).dialog("close");
    • @sasori - 这取决于您如何设计页面。例如,如果登录框是 id 为 loginBox 的 div,您可以使用 jquery 像 $("#loginBox").hide() 来隐藏登录框,然后使用 $("#loggedInUser").show() 显示包含用户详细信息的 div。可以按照我描述的方式或像 KhanZeeshan 那样进行刷新。
    • @sasori - 在这部分代码中success: function(){ alert("You are now registered!"); } 您可以通过将警报替换为window.location ='pathToCurrentPage' 来重新加载页面,但您也可以隐藏用户登录框并显示用户详细信息
    • @JeroenZ 这也应该这样做:window.location = ''
    【解决方案2】:

    在弹出的关闭事件上调用该函数:

    document.parent.location.reload();
    

    【讨论】:

      猜你喜欢
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-15
      相关资源
      最近更新 更多