2015-08-26 3 views
-4

Я не могу сравнить data с использованием инструкции if. Он всегда возвращает или оповещает verified. Я думал, что использование $.trim(data) решит проблему, но это не так. Как мне его решить?Невозможно сравнить данные в функции успеха ajax

$("document").ready(function() { 
    $("#login").submit(function() { 
     var data = { 
      "action": "test" 
     }; 
     data = $(this).serialize() + "&" + $.param(data); 
     $.ajax({ 
      type: "POST", 
      dataType: "text", 
      url: "../login.php", //Relative or absolute path to response.php file 
      data: data, 
      success: function (data) { 
       alert(data); //shows 0 or userid 

       if ($.trim(data) !== "") { 
        alert("verified"); 
        //$('.profile-popup-link').trigger('click'); 
       } else if ($.trim(data) == '0') { 
        alert("not verified"); 
        //$('.invalid-popup-link').trigger('click'); 
       } 
      } 
     }); 
     return false; 
    }); 
}); 
+4

это потому, что '0 == ""' верно только инвертировать '$ .trim (данные) == '0''and' $ .trim (данные) ! == "" 'в вашем if else – litelite

ответ

1
if($.trim(data)!=="") 

Вы говорите data всегда либо идентификатор пользователя или 0. Поэтому это if условие всегда будет true - data никогда просто пустая строка. Я предлагаю вам поставить if($.trim(data)=='0') в качестве первого условия, вернуть «не проверено», если это true, а на else делать все, что вы намеревались делать с данными.

0

Это потому, что 0 !== "" является истинным только инвертировать $.trim(data)=='0' и $.trim(data)!=="" в вашем случае еще. Не забывайте, что если инструкции else выполняются сверху вниз и попадают в первое совпадение, которое они находят.

0

Вам не нужно использовать JQuery $ .trim функцию, просто сравнить возвращаемое значение 0.

Предполагая, что данные либо 0, либо идентификатор пользователя, используйте следующую функцию успеха:

 success: function (data) { 
      if (data > 0) { 
       alert("verified"); 
       //$('.profile-popup-link').trigger('click'); 
      } else { 
       alert("not verified"); 
       //$('.invalid-popup-link').trigger('click'); 
      } 
     } 

Как это работает в моем примере: https://jsfiddle.net/0b28mt61/