如何基于jquery-ajax响应在同一窗口中打开新页面

时间:2014-10-15 12:56:49

标签: php jquery

这可能很容易,但我在做这件事时遇到了麻烦。如何使用jquery-ajax响应在同一窗口中打开新页面?

正如您所看到的,如果php响应等于单词"无效",我试图显示自定义文本。如果没有在同一个窗口中打开一个新的html页面。

   $("#lBtn").click(function(){
      $.post("php/session.php",
        { username:$("#username").val(), 
          password:$("#password").val()
        },
        function(response) {
          alert(response)
          if(response == "invalid"){
             $("#loginResponse").text("Error!!");
          } else {
             window.location = $(this).find('new/pahe.html').html();
            }
        });
    });

警报(响应)显示单词"无效"但if语句不起作用。表示它既不会在Error!!中显示$("#loginResponse")也不会打开新页面。这就是我想解决的问题。

2 个答案:

答案 0 :(得分:1)

编辑:您没有说出您的问题。您的目标是重定向到另一个页面。

如果#lBtn的html是网址本身,那么解决方案就是使用:

window.location.href = $(this).html();

这是用于在新标签页中打开链接

首先创建一个隐藏在某处的新链接:

Javascript代码

$('body').append('<a id="new_wnd_temp" href="another_page.html" target="_blank" style="display:none"></a>');

然后触发点击事件:

Javascript代码

$('#new_wnd_temp').trigger('click').remove();

在您的示例中,它看起来像这样:

Javascript代码

$("#lBtn").click(function() {
    $.post("php/session.php", {
        username:$("#username").val(), 
        password:$("#password").val()
    },
    function(response) {
        alert(response);

        if(response == "invalid") {
            $("#loginResponse").text("Error!!");
        } else {
            $('body').append('<a id="new_wnd_temp" href="another_page.html" target="_blank" style="display:none"></a>');
            setTimeout(function () {
                $('#new_wnd_temp').trigger('click').remove();
            }, 0);
        }
    });
});

答案 1 :(得分:1)

您可能会在帖子的输出中返回额外的空格(可能是回车或空格?)。

修剪回复:

function(response) {
    response = $.trim(response);
    if(response == "invalid"){

或者只是这样做以检查子字符串匹配:

function(response) {
    if(response.indexOf("invalid")>=0){