当前位置:编程学习 > JAVA >>

这么简单的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)   这样也行 --------------------编程问答--------------------
引用 6 楼 w297228025 的回复:
先用正则判断是不是数字,然后在转换parseFloat()和parseInt()都可以。

+1 --------------------编程问答--------------------
引用 4 楼 joaquinaimar 的回复:
转成数字。之前最好用正则判断一下
正解 --------------------编程问答-------------------- 在if判断之前,把a,b转成数字类型,同意楼上 --------------------编程问答--------------------
引用 6 楼 w297228025 的回复:
先用正则判断是不是数字,然后在转换parseFloat()和parseInt()都可以。


对的,前几天也遇到这个问题。就是这么做的。 --------------------编程问答-------------------- 学习了,字符串不恩能够直接比较大小 --------------------编程问答--------------------
引用 2 楼 ldh911 的回复:
哦,似乎应该是:
if (parseFloat(b) > parseFloat(a)) {

+1 --------------------编程问答-------------------- 使用document获取的值都是String类型
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,