JavaScript IF语句错误地评估TRUE - 为什么?

not*_*ceo 0 html javascript logic dom if-statement

我对客户购买的许可证数量与他们使用的数量进行了非常非常简单的逻辑测试:

else if(utype == "3"){
           var tech_lic = $("#technician_lic").val();
           console.log('tech lic = ' + tech_lic)
           var tech_allow = $("#technician_lic_allow").val();
           console.log('tech allow = ' + tech_allow)
           if(tech_lic >= tech_allow)
            {
              alert("You must purchase more licenses to create this Technician");
              return false;
            }
Run Code Online (Sandbox Code Playgroud)

我投入了试图调试它的console.log语句 - 通常它们不在那里.

单击"添加"按钮时Console.log:

tech lic = 4    application.js:262
tech allow = 100    application.js:264
Run Code Online (Sandbox Code Playgroud)

然后我们在窗口中点击"您必须购买更多许可证"警报.

有没有搞错?

如何4> = 100评估为真?

Exp*_*lls 7

因为.val返回一个字符串. '4'确实大于或等于'100'.首先将值转换为数字(如果您知道它们总是用于此比较的数字).

if (+tech_lic >= +tech_allow)
Run Code Online (Sandbox Code Playgroud)