一般情况下:
if(2 > 10) { alert("不正确!"); }
此比较不会是想要的结果:它相当于2 >1,把10的第一位取出来比较。
解决方法:
if(eval(2) > eval(10)) { alert("不正确!"); }
eval()函数用于在不引用任何特定对象的情况下计算代码字符串。
<script> function check() { var num1=document.form1.num1.value; var num2=document.form1.num2.value; if(num2>num1) <!-错误写法--> { alert('num2 > num1!'); return false; } return true; } </script> <script> function check() { var num1=document.form1.num1.value; var num2=document.form1.num2.value; if(parseInt(num2)>parseInt(num1)) <!-正确写法(转换成INT)--> { alert('num2 > num1!'); return false; } return true; } </script>
EG:
110和18在你写的程序中是18大的,因为
这两个数都是字符串,而1和1相等之后比较1和8,当然是8大,所以18大
你在比较之前转换成INT型在比
if(parseInt(num2)>parseInt(num1))