比较JQuery中的两个相同字符串将返回false [英] Comparing two identical strings in JQuery returns false

查看:355
本文介绍了比较JQuery中的两个相同字符串将返回false的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我发现了一个有趣的问题,该问题与JQuery的AJAX请求中的回显值有关,我没有以下答案:

I discovered an interesting problem with an echoed value from an AJAX request of JQuery, which I don't have an answere for:

我的data == "LOCKED"从不返回true(第13行)!

My data == "LOCKED" never returns true (line 13)!

JQuery ->按钮上的AJAX调用:

JQuery -> AJAX call on button-click:

$.ajax({
        url: "ajax/login_ajax_call.php",
        method: "POST",
        data: { user: usr, password: pwd }
    }).done(function(data){
            if(data == true || data == "true"){          // -> this works with data beeing true (bool) or "true" (string)
                $("#form_submit").submit();
            }
            else{
                console.log(jQuery.type(data));          // -> (string)
                console.log(data);                       // -> "LOCKED" 
                console.log(jQuery.type("LOCKED"));      // -> (string)
                if(data == "LOCKED"){                    // also tried "===" but it never returns true
                    [...]            
                }
                else{
                    [...]
                }
            }
    }); 
});             

PHP (1)->获取由Class(PHP(2))返回的值:

PHP(1) -> gets a value returned by a Class(PHP(2)):

include_once("../Classes/Login_check.php");
$lih = new Login_check();
$result = $lih -> check($_POST["user"], $_POST["password"]);
var_dump($result);                                     // -> string(6) "LOCKED"
echo $result;

PHP (2,"Login_check.php"):

PHP(2, "Login_check.php"):

[...]
// also tried: 
// $test = "LOCKED"; 
// var_dump($test);                                    // -> string(6) "LOCKED"
// return $test;
return "LOCKED";
[...]

如果需要更多信息,请告诉我! 希望任何人都知道导致此问题的原因!

Tell me if you need further informations! I hope anyone know what causes this problem!

推荐答案

必须是由于某些空格或换行,因此修剪data总是更好.试试这个:

Must be because of some white-spaces or new lines, it is always better to trim the data. Try this:

if (data.trim() == "LOCKED") {

您还可以使用:

if ($.trim(data) == "LOCKED") { // using jQuery.

这篇关于比较JQuery中的两个相同字符串将返回false的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆