我正在编写一个非常简单的函数,但是无法使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电子邮件电话示例:000001 John Doe johndoe@johndoe.com 123-456-7890

如果找不到帐户,则该字符串将完全如下所示:000906 NO ACCOUNT

在我的函数中,我去除了数字和第一个空格,然后检查它是否可以在我的if语句中使用。 我已经警告了textboxValue,并且传递正确,但是无论textboxValue是什么,if语句都不会触发。

===============>>#1 票数:4 已采纳

将if条件更改为:

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

indexOf("NO ACCOUNT")textboxValue找到"NO ACCOUNT" ,如果找不到它,则返回-1 因此,如果"NO ACCOUNT"在您的字符串中的任何位置,则为true。

===============>>#2 票数:2

使用==进行比较。 您正在分配真实值,因此该语句始终会触发。

===============>>#3 票数:1

将您的if条件更改为

if (textboxValue == "NO ACCOUNT")

如果你这样做

if (textboxValue = "NO ACCOUNT")

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

===============>>#4 票数: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");
}
});

===============>>#5 票数:0

  1. 如Kolink建议,使用==进行比较。

  2. 您正在取代" """ ,IE浏览器。 删除所有空格,以便您的if语句永远不会返回true。

  ask by radleybobins translate from so

未解决问题?本站智能推荐: