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,'');
}
})
这个类名也可以改变,可以自定义。如果允许浮点数或者其他类型改变正则表达式即可。