一般情况下:
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))