如何基于jquery-ajax响应在同一窗口中打开新页面
这可能很容易,但我在做这件事时遇到了麻烦。 如何使用jquery-ajax响应在同一窗口中打开新页面?
正如您所看到的,如果php响应等于单词“invalid”,我会尝试显示自定义文本。 如果没有在同一个窗口中打开一个新的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")
也不会打开新页面。 这就是我想解决的问题。
您可能会在post的输出中返回额外的空格(可能是回车或空格?)。
修剪回复:
function(response) { response = $.trim(response); if(response == "invalid"){
或者只是这样做以检查子字符串匹配:
function(response) { if(response.indexOf("invalid")>=0){
编辑 :你没有说出你的问题。 您的目标是重定向到另一个页面。
如果#lBtn
的html是url本身,那么解决方法是使用:
window.location.href = $(this).html();
这是用于在新选项卡中打开链接
首先创建一个隐藏在某处的新链接:
Javascript代码
$('body').append('
');
然后在其上触发click事件:
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('
'); setTimeout(function () { $('#new_wnd_temp').trigger('click').remove(); }, 0); } }); });