一段简单代码,简单实现控制数字数字框产的长度无效问题
好久没有水博客了,实在是最近没啥经验分享,想着搞搞自己的东西,于是乎就看到了整个博文,众所周知,input当type=number的时候,设置maxlength是无效的,这个小代码,就是让maxlength生效,就是这样!
代码片段
;!(function (elems){
elems.forEach(function (elem){
// 取出类型和长度配置
const {type,maxLength} = elem;
// 判断数输入框
if(type === "number" && maxLength) {
// 监听输入事件
elem.addEventListener("input",function (e) {
// 取值
let {value} = elem;
// 只允许输入数字
value = value.replace(/[^0-9]/g,"");
// 限制长度
if(value.length > maxLength) value = value.substr(0,maxLength);
// 赋值
elem.value = value;
})
}
})
})(document.querySelectorAll("input"));
去除浏览器默认样式
input[type=number] {
-moz-appearance:textfield;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}