Javascript检查是否为正

Javascript检查是否为正,javascript,function,Javascript,Function,Javascript函数: function checkPos1(){ var x = parseInt(document.getElementById('qty1').value); if (x < 0) { alert("Quantity field must contain a positive number!"); return false; } } 函数checkPos1(){ var x=parseInt(document.g

Javascript函数:

function checkPos1(){
    var x =  parseInt(document.getElementById('qty1').value);
    if (x < 0)
    {
    alert("Quantity field must contain a positive number!");
    return false;
    }
}
函数checkPos1(){
var x=parseInt(document.getElementById('qty1').value);
if(x<0)
{
警报(“数量字段必须包含正数!”);
返回false;
}
}
表格编号:

<form action="cart.php" method="get">
     <input type="button" onclick="buttonSubtract1()" name="subtract1" value="-
"/>
     <input type="text" size="4" id="qty1" name="quantity1" value="0"/>
     <input type="button" onclick="buttonAdd1()" name="add1" value="+"/>
     <input type="submit" onclick="checkPos1()" name="product1" value="Add"/>
   </form>


为什么这个函数不起作用?我试图确保客户手动输入的文本值是正整数,然后才允许提交

要检查值是否为数字或字母,可以使用JavaScript的内置功能

if(x.isNaN()) {
   /* place the second code in this body */
}
你需要这个

if (x < 0) {
    // if less than 0; negative;
    alert("Quantity field must contain a positive number!");
    return false;
} else {
    // if greater than 1; positive;
    alert("Value was positive");
    return false;
}
if(x<0){
//如果小于0,则为负值;
警报(“数量字段必须包含正数!”);
返回false;
}否则{
//如果大于1,则为正值;
警报(“值为正值”);
返回false;
}
用户没有任何块来检测正整数,这就是它根本不显示任何内容的原因。我已经包括了一个声明,然后它会提醒用户,如果提供的数字是一个积极的


有关isNaN函数的详细信息,事件处理程序末尾的

返回false
是用于停止事件处理程序链的jquery约定。如果没有jquery,您应该调用事件的
preventDefault
方法。 试试这个:

function checkPos1(){
    var x =  parseInt(document.getElementById('qty1').value);
    if (x < 0)
    {
        alert("Quantity field must contain a positive number!");
        window.event.preventDefault();  // <--- stop default handling
    }
}
函数checkPos1(){
var x=parseInt(document.getElementById('qty1').value);
if(x<0)
{
警报(“数量字段必须包含正数!”);
window.event.preventDefault();//尝试使用
onclick=“checkPos1();”
而不是
onclick=“checkPos1()”
并检查
x
是否携带任何值到控制台。

使用


不要在提交按钮上单击“操作”。

让您将x的值打印到控制台?您得到了什么?仅供参考,零既不是负数也不是正数。看起来您真正想要的是一个非负数。如何检查以确保x是整数?要过滤掉非数字,请使用
!(x>0)
而不是
x@user3691334由于
x
是由
parseInt
返回的值,因此您将返回一个整数或
NaN
(不是一个数字)。您可以使用
isNaN(x)
对其进行测试。无需使用
返回
返回值,这将与window.event.preventDefault()一起使用;有效,谢谢!但是如何检查非数字?为此,您可以使用称为
NaN
非数字的方法:
if(x.isNan()){
这将检查值是数字还是字母字符…如何检查非数字?只需在检查条件之前检查
x
的值。如
alert(x);