Javascript验证出现故障

Javascript验证出现故障,javascript,validation,Javascript,Validation,因此,我试图验证一个表单输入,如果输入的值大于可用配额,该表单输入应该抛出一个错误警报 <script type="text/javascript"> function validateform() { var num = document.add_form.required_number.value; var quota = document.add_form.quota.value;

因此,我试图验证一个表单输入,如果输入的值大于可用配额,该表单输入应该抛出一个错误警报

<script type="text/javascript">
            function validateform() {
                var num = document.add_form.required_number.value;

                var quota = document.add_form.quota.value;


                if(num>quota) {
                    alert("Required Number Exceeds Demand Quota! The Allowed Quota is " + quota);
                    return false;
                }
                else {
                    alert("Error " + num + " " + quota);
                    return false;
                }
            }
        </script>

函数validateform(){
var num=document.add\u form.required\u number.value;
var quota=document.add\u form.quota.value;
如果(数量>配额){
警报(“所需数量超过需求配额!允许配额为“+配额”);
返回false;
}
否则{
警报(“错误”+num+“”+quota);
返回false;
}
}
但不幸的是,即使输入的值高于可用配额,它也不在if条件内。所以我写了else,看看这些值是否正确地分配给变量。它被正确地分配了。因此,在我提交表单后,我会收到一个警报


因此,这意味着即使满足if语句,它也会执行else语句。

这里的问题是因为所有HTML输入值都被视为文本,在这种情况下,
'5555'>'9'
为false

事实证明,这甚至不是原生JS或jQuery的问题

因此,要获得正确的比较,必须首先将它们转换为数字,例如使用if预期为整数,或者简单地使用

$(函数(){
log('native type='+typeof document.getElementById('test').value);
log('jquery type='+typeof$('#test').val());
log('5555'>'9'是“+('5555'>'9'?'true':'false');
log(“5555>9是”+(5555>9?'true':'false');
});


字段值始终是文本,在与`var num=document.add.\u form.required.\u number.value;`?使用ParseInt()函数解析值,然后comapre@MohitBhardwaj
add_form
是表单的名称,
required_number
是表单中输入字段的名称。