将数字验证为正数

Validate a number as a positive number

本文关键字:验证 数字      更新时间:2024-04-24

我已经将一个数字验证为正数,但它没有给出正确的答案,即它也接受负数。我哪里错了?

<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>

this:

(parseInt)class1.value<0

应该是:

parseInt(class1.value, 10) < 0

10将强制它被评估为基数10,并且不允许JavaScript"猜测"它认为它是哪个基数。在以前版本的ECMAScript中,在开头有一个"0"的字符串会诱使parseInt认为这个数字应该被解释为八进制。

ParseInt文档

您还试图通过id获取元素,并且已经通过name指定了该元素。

Class:<br/><input type="number" name="class"><br/>

你可以给元素一个id,也可以使用

var class1=document.getElementsByName("class")[0];

而不是:

var class1=document.getElementById("class");

以及你有type="javascript",应该是language="javascript"

https://jsfiddle.net/wvapgjs6/1/