JQuery не перезагружается, даже если данные не определены - PullRequest
0 голосов
/ 22 января 2019

У меня есть эта функция, которая проверяет правильность регистрационных данных (имя пользователя и пароль) с помощью ajax.Если результат php является ошибкой, я печатаю ошибку, но если результат пустой, я хотел бы перезагрузить страницу.

function(data) {
  if (data.length && data != null) {
    $("span.error").remove();
    $(".login-overlay .login h3").after('<span class="error">' + data + '</span>');
  } else {
    location.reload();
  }
}

Проблема заключается в том, что когда результат php (данные) пуст, код печатает пустой промежуток

<span class="error"></span>

Я думаю, что ошибка в если предложение , но я попробовал все:

data.length
data.length > 0
data != undefined
data != null
data

Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Я думаю, что поскольку вы проверяете и data, и data.length, оператор IF не передается.Вы передаете данные с сервера в другую сторону, поэтому, вероятно, всегда будут данные, и оператор IF не будет работать.Я бы попробовал следующий код, если действительно DATA является строкой:

function(data) {
    if(data.length > 0){
    $("span.error").remove();
    $(".login-overlay .login h3").after('<span class="error">'+data+'</span>');
} else {
    location.reload(); }
}
0 голосов
/ 22 января 2019
function(data) {
  if (data && data.trim()) {
    data = data.trim();
    $("span.error").remove();
    $(".login-overlay .login h3").after('<span class="error">' + data + '</span>');
  } else {
    location.reload();
  }
}

Возможно, вы просто хотите проверить, определены ли данные. Так что это должно работать. В противном случае, пожалуйста, покажите, что именно data. Что вы могли бы сделать, выполнив console.log(data) в начале вашей функции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...