在JQuery中比较两个相同的字符串会返回false(Comparing two identical strings in JQuery returns false)

编程入门 行业动态 更新时间:2024-10-25 05:24:57
在JQuery中比较两个相同的字符串会返回false(Comparing two identical strings in JQuery returns false)

我发现了一个有趣的问题,来自JQuery的AJAX请求的回显值,我没有回答:

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

JQuery - >点击按钮时调用AJAX:

$.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) - >获取一个类返回的值(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”):

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

如果您需要进一步的信息,请告诉我! 我希望有人知道导致这个问题的原因!

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

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

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) -> 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"):

[...] // 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总是更好。 尝试这个:

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

您还可以使用:

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

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

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

You can also use:

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

更多推荐

本文发布于:2023-07-31 01:58:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1340376.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字符串   两个   false   JQuery   strings

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!