一段简单代码,简单实现控制数字数字框产的长度无效问题

好久没有水博客了,实在是最近没啥经验分享,想着搞搞自己的东西,于是乎就看到了整个博文,众所周知,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;
}