2014-10-15 3 views
0

Это может быть легко, но у меня возникли проблемы с этим. Как открыть новую страницу в том же окне, используя jquery-ajax response?Как открыть новую страницу в том же окне на основе jquery-ajax response

Как вы можете видеть, я пытаюсь отобразить пользовательский текст, если 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(); 
      } 
     }); 
    }); 

Alert (response) показывает слово «invalid», но оператор if не работает. Не отображает Error!! в $("#loginResponse") и не открывает новую страницу. Вот что я хочу исправить.

+1

Что это предполагается сделать: '$ (это) .find ('новый /pahe.html '). html(); ' – Steve

+0

@fox: не открывать страницу на новой вкладке или аналогично – Fergoso

+0

@Steve: открыть свежий URL-адрес – Fergoso

ответ

1

Возможно, вы получаете дополнительное белое пространство, возвращаемое на выходе из сообщения (возможно, возврат каретки или пробел?).

Обрежьте ответ:

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

или просто делают это, чтобы проверить на подстрок матча:

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

Пятно на .... Спасибо! – Fergoso

1

EDIT: Вы не ответили правильно. То, что вы пытаетесь сделать, - перенаправить на другую страницу.

Если HTML #lBtn «s является сам URL, решение это использовать:

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); 
     } 
    }); 
}); 
+0

Спасибо. Но моя проблема в том, что 'alert (response)' показывает слово «invalid», но оператор if не работает. Не отображает 'Error !!' в '$ (" # loginResponse ")' и не открывает новую страницу. Вот что я хочу исправить. – Fergoso

+0

Это, скорее всего, потому, что у вас есть символ пробела до или после скрипта php. Вместо 'response == 'invalid" ', попробуйте использовать' response.replace ("", "") ==' invalid ''. Если это все еще не работает, попробуйте также удалить символ' \ n' . –

Смежные вопросы