用户确认后使用jquery重定向到新页面

时间:2013-01-17 08:11:52

标签: jquery

在我的Web应用程序(使用Zend Framework)中向数据库添加新实体时,应检查此实体是否先前已添加和删除。 (从数据库中删除实体时,该特定记录的“STATUS”列更新为0(零)。)

如果实体之前已删除,系统会要求确认编辑以前删除的记录,或添加新记录。如果用户需要编辑以前添加的记录,则应将用户重定向到编辑页面。

使用jQuery完成此检查和重定向。这是我正在使用的jQuery代码:

 $("input[name=btnSubmit]").click(function(){       

    var name = $("input[name=txtTblPrefix]").val();
        var parameters = 'name='+name;

        $.ajax({
            url: '../admin_mapping/get-id',
            async:false,
            data:parameters,
            type:'POST',
            dataType: 'text',
            success: function(data)
            {       
                var res = confirm("There is a record already added to the database for "+name+". Do you want to edit it?");

                if(res)
                {
                    window.location.replace("../admin_mapping/edit?id="+data);
                }
            }

        });

    });

在这段代码中,除了重定向之外,一切都很完美。我已分别测试了行window.location.replace("../admin_mapping/edit?id="+data);,它运行正常。即使confirm()函数返回true

我已尝试在alert()条件中放置if,并提示警告。但重定向不起作用。

有人可以帮我解决这个问题吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

首先确保变量数据包含您期望的内容:可能它有一些标题使调用出错(但您应该在控制台中发现它)。

如果你可以提醒()正确的字符串,那么尝试另一种方法:location有一些安全限制(即iframe无法改变其容器的位置);您可能无法在未命名的函数调用中对其进行操作,但您可以从超时(这对我起作用!)这样做而不是

document.location.href='./yoururl?'+data 

setTimeout("document.location.href='yoururl?"+data +"';",10);

这将在更广泛的范围内运行,并且应该成功。

答案 1 :(得分:0)

我唯一需要做的就是在return false函数中添加submit。否则,当按钮是提交按钮时,表单将被提交。