2013-03-26 110 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

比較像串數據==「真」