0

我的javascript表现得很奇怪!

我的 html 文件中有一个输入字段。此输入字段由 javascript 以下列方式读取:

var bscore = $("#bscore").val();

然后我想在输入低于某个输入时显示警报

if(bscore<"913"){
    document.getElementById("bscorealert").style.display="block";
};

这工作正常。因此,当数字高于 913 时,它不应该显示。只有 javascript 的行为很奇怪,当 bscore 输入字段中的数字高于 999(所以 1000 或更高)时,触发 if 语句并显示警报。

这怎么可能?

4

2 回答 2

5

这是可能的,因为您正在比较字符串,而不是整数。字符串比较是按字典顺序进行的,"9" > "10"依此类推。

Number(strValue)在与或与一元运算符进行比较之前,您需要进行转换+

var bscore = +$("#bscore").val();    // + prefix converts to number
if (bscore < 913) ...                // no quotes around 913!
于 2013-10-23T13:25:21.627 回答
1

您正在尝试比较 2 个字符串,它使用字母比较。如果您在该字段中输入一个介于 9130 和 9999 之间的值,您会注意到消息框也不会显示。

您必须执行 parseInt 来比较数值。

于 2013-10-23T13:27:05.297 回答