在colorbox中获得响应后更改位置

时间:2012-10-10 08:42:34

标签: jquery jsp colorbox

我正在开发一个模块,我在其中选择一个公司名称,然后使用colorbox iframe弹出一个密码表单。当我输入密码并提交表单时,我会得到json作为回复。现在我想关闭弹出窗口并将页面重定向到另一个页面。我的代码是

    $(document).ready(function(){
        var validator = $("#passwordverify").validate({ 
            rules: {  
                password: { 
                    required: true, 
                    minlength: 5 
                } 
            }, 
            messages: {  
                password: { 
                    required: "Provide a password", 
                    rangelength: jQuery.format("Enter at least {0} characters") 
                }
            },
            submitHandler: function() { 
                $.ajax({
                    url:"varifypassword.action",
                    type:"post",
                    dataType:"json",
                    data:{partyid:$("#partyid").val(), password:$("#password").val()},
                    success:function(response){
                        if(response.response == true)
                            {
                                  parent.$.fn.colorbox.close();
                                  window.location.replace("main.jsp");
                            }
                        else
                            {
                                $("#error").html("Incorrect Password");
                            }
                        }
                    }); 
            }
        });  

工作正常但window.location.replace适用于同一个iframe。它会在同一个弹出窗口中打开main.jsp。如何在父页面的位置加载它。

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用其中一种方法?

parent.$.fn.colorbox.close();
window.opener.location.href = mySite;

parent.$.fn.colorbox.close();
window.parent.location.href = mySite;

答案 1 :(得分:1)

您可以将javascript方法添加到父窗口

在iFrame

之外添加以下方法
    function ChangeUrlFromParent(url)
    {
    document.location=url;
    }

并从iFrame调用方法

   $(document).ready(function(){
    var validator = $("#passwordverify").validate({ 
        rules: {  
            password: { 
                required: true, 
                minlength: 5 
            } 
        }, 
        messages: {  
            password: { 
                required: "Provide a password", 
                rangelength: jQuery.format("Enter at least {0} characters") 
            }
        },
        submitHandler: function() { 
            $.ajax({
                url:"varifypassword.action",
                type:"post",
                dataType:"json",
                data:{partyid:$("#partyid").val(), password:$("#password").val()},
                success:function(response){
                    if(response.response == true)
                        {
                              parent.$.fn.colorbox.close();
                              ChangeUrlFromParent("main.jsp");
                        }
                    else
                        {
                            $("#error").html("Incorrect Password");
                        }
                    }
                }); 
        }
    });  

希望这会有所帮助:)