javascript - 检查按钮单击时的整数输入

标签 javascript

我正在尝试让这个 Javascript 在我的应用程序中正常工作。

function validateQuantity(field)
{
    var value = field.value; //get characters
    //check that all characters are digits, ., -, or ""
    for(var i=0;  i < field.value.length; ++i)
    {
        var new_key = value.charAt(i); //cycle through characters
        if(((new_key <= "0") || (new_key > "9")) &&
            !(new_key == ""))
        {
            alert("Please enter number and greater than 0 only");
            return false;
            break;
        }
        return true;
    }
}

我有一个输入按钮,如下所示

<input class="buttonToLink" type="submit" value="Update" 
       onclick="return validateQuantity(document.getElementById('quantity'))"/>

以上代码成功检查所有字母(例如“abc”)或字母和数字(例如“abcd123”)的输入为 false。

但是,当我将数字字符与“123abc”等字母放在一起时,它会失败 - 它不会显示警报。

我的代码做错了什么,如何修复?

最佳答案

function validateQuantity(field) {
    if (!/^\d+$/.test(field.value)) { // is an integer
       alert("Please enter number and greater than 0 only");
       return false;
    }

    return true;
}

您的代码不起作用的原因是循环内有 return true 语句。一旦它看到一个有效的整数,它就会返回 true 并退出函数,忽略后面的任何内容。例如,允许“123abc”等字符串。

这可能就是您想要的:

function validateQuantity(field)
{
    var value = field.value; //get characters
    //check that all characters are digits, ., -, or ""
    for(var i=0;  i < field.value.length; ++i)
    {
        var new_key = value.charAt(i); //cycle through characters
        if(((new_key <= "0") || (new_key > "9")) &&
            !(new_key == ""))
        {
            alert("Please enter number and greater than 0 only");
            return false;
            break;
        }
    }

    return true;
}

关于javascript - 检查按钮单击时的整数输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3852273/

相关文章:

javascript - 我们可以删除 dom 表吗?

javascript计算对象数组中没有空值的对象

javascript - 我如何在悬停时更改图像源并单击 Angular 2 其在 ngFor 生成的列表中

javascript - 如何创建多维 json 数组

javascript - 尝试使用 Spotify Web Api 将歌曲添加到另一个协作播放列表时出现 403 禁止错误

javascript - 如何在后退/前进或刷新后保留数据表中的过滤器

javascript - Chart.js 如何在条形图中对齐两个 X 轴?

javascript - 可以在移动设备(iOS/Android)上在后台观看位置吗?

javascript - 如何让pathFor根据this.params._id创建URL路径?

javascript - 如何在 Angular4 中检测父 div 上的焦点而不是子 div 上的焦点