在做程序的时候碰到一个问题,之前同事写的js中比较两个变量大小出现了莫名奇妙的结果:
<input type="hidden" value="20" id="surplus"/>
<input type="text" id="obligate"/>
<script>
function addObligate() {
var num = $("#surplus").val();
var num1 = $("#obligate").val();
if(num1 == '' || num1 == 0) {
alert('预留数量不得为空!');
$("#obligate").focus();
return false;
}else if(num1 > num){
alert('预留数量不能超出可售数量!');
$("#obligate").focus();
return false;
}else{
return true;
}
}
</script>
各方查看以后发现,js中var变量是将变量赋值成字符串,字符串比较是从第一位开始比较,然后我们就会发现其实你所输入的数字第一位只要比2大这个判断都是不成立的。所以我们就需要用parseInt()将字符串变量转换成整型变量,只要js中涉及到数字比较的,都建议使用此函数进行转换。