javascript 表单只允许输入数字实现

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://vuejs.org/js/vue.min.js"></script>
</head>
<body>
    <input type="text" onkeyup="this.value=this.value.replace(/[^0-9]+/g,'')"> <!-- 禁止拼音混入 -->
    <script>
        document.querySelector("input").addEventListener("keydown", function(event){
            if(event.key in ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']){}  // 允许数字
            else if(event.keyCode == 8){}  // 允许删除
            else
                event.preventDefault();
        })
    </script>
</body>
</html>

使用:将这段代码保存到一个文件,然后引入,给需要验证的表单添加validate类名,然后从最后引入:

document.querySelectorAll('.validate').forEach((v,i,arr)=>{
    v.addEventListener('keydown', event=>{
        console.log(event);
        if(event.key in ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']){}  // 允许数字
        else if(event.keyCode == 8){}  // 允许删除
        else
            event.preventDefault();
    })
    v.onkeyup = function(){
        v.value = v.value.replace(/[^0-9]+/g,'');
    }
})

这个类名也可以改变,可以自定义。如果允许浮点数或者其他类型改变正则表达式即可。

posted @ 2021-09-17 20:19  小默同学  阅读(64)  评论(0编辑  收藏  举报