我正在编写一个非常简单的函数,但无法使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无账户
在我的函数中,我删除了数字和第一个空格,然后检查它是否在我的if语句中有效。我已经提醒了textboxValue并且它正确传递,但无论textboxValue是什么,if语句都不会触发。
答案 0 :(得分:4)
将if条件更改为:
if(textboxValue.indexOf("NO ACCOUNT") !== -1)
indexOf("NO ACCOUNT")
在"NO ACCOUNT"
内找到textboxValue
,如果找不到-1
则会返回"NO ACCOUNT"
。如果{{1}}在您的字符串中的任何位置,那么这将是真的。
答案 1 :(得分:2)
使用==
进行比较。您正在分配一个真值,因此该语句始终会触发。
答案 2 :(得分:1)
将if
条件更改为
if (textboxValue == "NO ACCOUNT")
如果你这样做
if (textboxValue = "NO ACCOUNT")
您实际上是将"NO ACCOUNT"
分配给textboxValue
并将结果评估为bool。
答案 3 :(得分: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");
}
});
答案 4 :(得分:0)
使用==
进行比较,如Kolink所示。
您正在将" "
替换为""
,IE。删除所有空格,以便if语句永远不会返回true。