这可能很容易,但我在做这件事时遇到了麻烦。如何使用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")
也不会打开新页面。这就是我想解决的问题。
答案 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){