0

我正在编写一个非常简单的函数,但无法让 if 语句正常工作。

$("#supplyRequestTextbox-clients").live("blur", function() {
    var textboxValue = $(this).val().replace(/\d+/g, '').replace(" ", "");
    if (textboxValue == "NO ACCOUNT") {
        $(".controlBarTextboxNoAccount").fadeIn("fast");
    }
});

输入#supplyRequestTextbox-clients 中的值代表一个客户,其组织方式如下:
id# FirstName LastName email phone 示例:000001 John Doe johndoe@johndoe.com 123-456-7890

未找到帐户时,字符串完全如下所示:000906 NO ACCOUNT

在我的函数中,我去掉了数字和第一个空格,然后检查它是否在我的 if 语句中有效。我已经提醒 textboxValue 并且它正在正确传递,但无论 textboxValue 是什么,if 语句都不会触发。

4

5 回答 5

4

将 if 条件更改为:

if(textboxValue.indexOf("NO ACCOUNT") !== -1)

indexOf("NO ACCOUNT")"NO ACCOUNT"在内找到textboxValue,如果找不到-1则返回。"NO ACCOUNT"因此,如果在您的字符串中的任何位置,这将是正确的。

于 2013-04-16T03:29:21.107 回答
2

用于==比较。您正在分配一个真实的值,因此该语句总是会触发。

于 2013-04-16T03:19:30.450 回答
1

if将您的条件更改为

if (textboxValue == "NO ACCOUNT")

如果你这样做

if (textboxValue = "NO ACCOUNT")

您实际上是在将结果分配"NO ACCOUNT"textboxValue并评估为 bool。

于 2013-04-16T03:19:38.480 回答
0

尝试这样做:

$("#supplyRequestTextbox-clients").live("blur", function() {
    var textboxValue = $(this).val().replace(/\d+/g, '').replace(" ", "");

    // check what textboxValue evaluates to:
    alert(textboxValue);

if (textboxValue == "NO ACCOUNT") {
    $(".controlBarTextboxNoAccount").fadeIn("fast");
}
});
于 2013-04-16T03:29:29.050 回答
0
  1. 正如Kolink==建议的那样用于比较。

  2. 您将替换" """, IE。删除所有空格,这样您的 if 语句将永远不会返回 true。

于 2013-04-16T03:30:43.553 回答