这么简单的js判断都出问题了,帮忙看看
只要input a输入的数字大于等于10,判断就失效了,是什么原因呢?--------------------编程问答-------------------- 字符串比较是从左到右逐个字符对比的。
<Script type="text/javascript">
function test(){
var b=document.getElementById("b").value;
var a=document.getElementById("a").value;
if (b>a){
alert("b不能大于a");
return false;
}
}
</script>
<input type="text" id="a" value="10" />
<input type="text" id="b" value="2" >
<input name="" type="button" onclick="test()" value="button" />
试试这个:
if (Number(b) > Number(a)) --------------------编程问答-------------------- 哦,似乎应该是:
if (parseFloat(b) > parseFloat(a)) { --------------------编程问答-------------------- 你得到的是字符串,用>就会左边比较一个字符 转型parseInt 或者parseFloat都可以 --------------------编程问答-------------------- 转成数字。之前最好用正则判断一下 --------------------编程问答-------------------- 转成数字。。 --------------------编程问答-------------------- 先用正则判断是不是数字,然后在转换parseFloat()和parseInt()都可以。 --------------------编程问答-------------------- if (b-0> a-0) 这样也行 --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 正解 --------------------编程问答-------------------- 在if判断之前,把a,b转成数字类型,同意楼上 --------------------编程问答--------------------
对的,前几天也遇到这个问题。就是这么做的。 --------------------编程问答-------------------- 学习了,字符串不恩能够直接比较大小 --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 使用document获取的值都是String类型
补充:Java , Web 开发