JavaScript比较运算符不起作用

时间:2014-11-24 12:33:50

标签: javascript html

我需要使用Less Than或Greater Than比较两个值,但它不能正常工作。在我的代码下面。

//JAVASCRIPT
<script type="text/javascript">
function validform()
{
    var balanvar = document.myform.balance.value,
        currntvar = document.myform.currnt.value;     
    if( currntvar == "" ) { document.myform.currnt.focus(); document.getElementById("curntid").style.borderColor = "red"; return false; } // Must be filled error
    if(currntvar > balanvar) { document.myform.currnt.focus(); document.getElementById("curntid").style.borderColor = "red"; return false; } else { document.getElementById("curntid").style.borderColor = "green"; } // Maximum value error
}
</script>
//HTML
<form name="myform" method="post" action="">
<input type="text" name="balance" id="balanceid" value="12000"/>
<input type="text" name="currnt" id="curntid"/>
<input type="submit" name="submit" value="Proceed" onclick="return validform();"/>
</form>

我想要的是,我必须输入少于&#34;平衡&#34;价值在&#34; currnt&#34;文本框,如果我输入最大值比较&#34;余额&#34;文本框的意思是,必须抛出错误信息。

问题是,当点击继续而没有填写&#34; currnt&#34;它显示错误。当在&#34; currnt&#34;中输入值15000时表示其显示错误。但是当在&#34; currnt&#34;中输入值100000时意味着它没有给出错误。我不知道这是什么错误。请帮我。

1 个答案:

答案 0 :(得分:1)

.value属性返回一个字符串。因此,您使用字符串比较进行比较,大多数情况下,这些比较会产生除数字比较之外的其他结果。

要解决此问题,请先使用parseFloat()parseInt()转换为数字:

function validform()
{
    var balanvar = parseFloat( document.myform.balance.value ),
        currntvar = parseFloat( document.myform.currnt.value );     
    if( isNaN( currntvar ) ) { document.myform.currnt.focus(); document.getElementById("curntid").style.borderColor = "red"; return false; } // Must be filled error
    if(currntvar > balanvar) { document.myform.currnt.focus(); document.getElementById("curntid").style.borderColor = "red"; return false; } else { document.getElementById("curntid").style.borderColor = "green"; } // Maximum value error
}