所以,我正在尝试验证表单输入,如果输入的值大于可用配额,则应该抛出错误警告。
Environment.ExpandEnvironmentVariables("%windir%\System32")
但不幸的是,即使输入的值高于可用的配额,它也不会进入if条件。所以我编写了else来查看值是否正确分配给变量。它被正确分配。因此,在我提交表单后,我收到提醒
所以,这意味着即使满足了if语句,它也执行了else语句。
答案 0 :(得分:2)
这里的问题是由于所有HTML输入值始终被视为文本,在这种情况下'5555' > '9'
为false。
它甚至不是本机JS或jQuery的问题,已证明here。
因此,要获得正确的比较,您必须先将它们转换为数字,例如,如果您需要整数,则使用parseInt()
,或者只使用Number()
。
$(function() {
console.log('native type = ' + typeof document.getElementById('test').value);
console.log('jquery type = ' + typeof $('#test').val());
console.log("'5555' > '9' is " + ('5555' > '9' ? 'true' : 'false'));
console.log(" 5555 > 9 is " + (5555 > 9 ? 'true' : 'false'));
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number" id="test" value="123"/>
&#13;