我已经将一个数字验证为正数,但它没有给出正确的答案,即它也接受负数。我哪里出错了?
<script type="javascript">
function validatenumber(){
var class1=document.getElementById("class");
if((parseInt)class1.value<0){
alert("Please enter positive integer");
return false;
}
}
</script>
<form name="addbook" action="addbook.php" method="get" onsubmit="validatenumber();">
Code:<br/><input type="text" name="code"><br/>
Class:<br/><input type="number" name="class"><br/>
title:<br/><input type="text" name="title"><br/>
price:<br/><input type="number" name="price"><br/>
quantity:<br/><input type="number" name="quantity"><br/>
category:<br/><input type="text" name="category"><br/>
<input type="submit" value="submit"><br/>
</form>
答案 0 :(得分:3)
这个:
(parseInt)class1.value<0
应该是:
parseInt(class1.value, 10) < 0
10将迫使它被评估为基数10并且不允许JavaScript进行猜测&#34;至于它认为它是哪个基地。在以前版本的ECMAScript中,有一个带有&#34; 0&#34;的字符串。在开始时会欺骗parseInt认为该数字应该被解释为八进制。
您还尝试按ID获取元素,并且您已按名称指定。
Class:<br/><input type="number" name="class"><br/>
您可以为元素指定ID,也可以使用
var class1=document.getElementsByName("class")[0];
而不是:
var class1=document.getElementById("class");
和
你有type="javascript"
,它应该是language="javascript"