我需要使用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时意味着它没有给出错误。我不知道这是什么错误。请帮我。
答案 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
}