2013-03-26 80 views
-4
<script type="text/javascript"> 
     function abc() { 
      var name = $("#name").val(); 
      $.get("/Game/CheckName", { plName: name }, function (data) { 
       alert(data); // here data = true 
        if (data == true) { // i tried so (if (data)) but it didn't work too 
         window.location.href = '@Url.Action("List", "Game")'; 
        } else { 
         alert("Name is already use!"); 
        } 
      });    
     } 

在此代码中(if (data == true)) value always = false。为什么?我该如何改变它?jQuery true和false

+0

您需要更具体。 “data”中包含了什么?一个字符串或布尔值? – Alexander 2013-03-26 17:14:41

+1

数据可能是一个字符串,所以数据=='真'可能更合适 – VirtualTroll 2013-03-26 17:15:16

+0

尝试使用'console.log'来检查数据的内容。 – zzzzBov 2013-03-26 17:17:27

回答

3

给出了以下假设是正确的(这这往往是这类问题的原因):

/Game/CheckName返回一段文字“true”或单词“false”

那么解决的办法是:

比较,不布尔值。

if (data === "true") {} 

请注意输出中的空格。它会停止匹配精确字符串的代码。您可以通过检查结果中任何位置出现子字符串“true”来避免这种可能性:

if (data.indexOf('true') >= 0) {} 
+0

+1在你的假设中是明确的。 – zzzzBov 2013-03-26 17:16:58

+0

+0作出假设。 – Alexander 2013-03-26 17:22:37

+0

错误是这样的:控制器返回值在hight registr =(“True”) – user2204438 2013-03-27 02:47:09

-5

尝试

if (data === true) 

代替

+2

如果'data == true'返回'false','data === true'将永远不会返回true。 – zzzzBov 2013-03-26 17:15:58

0

比较像串数据==“真”