<input type='number' id='N1'/>
<input type='number' id='N2'/>
alert($('#N1').val()<$('#N2').val());
上面的代码,如果输入N1为10,N2为100,则弹出true,似乎结果没什么问题,
但是如果将N1改成9或者11等等,N2不变,则会弹出false,这明显不是我们想要的结果.
解决办法:
1.利用转换函数,将输入框文本转换为数字类型,例如
alert(parseInt($('#N1').val())<parseInt($('#N2').val()));
2.类型强制转换,例如
alert(Number($('#N1').val())<Number($('#N2').val()));
3.利用JS弱类型转换,例如
alert($('#N1').val()*1<$('#N2').val()*1);
4.进行数字运算.例如
alert(($('#N1').val()-$('#N2').val())<0);
5.eval()函数用于在不引用任何特定对象的情况下计算代码字符串。
alert(eval($('#N1').val())<eval($('#N2').val()));