input中的值,只能为两位整数,现已增加属性maxlength,js该如何做校验?
<input type="number" maxlength=2 id="aa">
$("#aa").on("input propertychange",function(){
if($(this).val().length>2){
$(this).val($(this).val().substr(0,2));
}
})
$('input').on('change',function(){
if(!/^\d\d$/.test($(this).val())){//如果为0-2位整数,那么/^\d{0-2}$/
$(this).val('')
}
})
可以从输入端控制
document.querySelector('input').addEventListener('input', (e) => {
let val = e.target.value.replace(/[^\d]/g, '');
// 使用 maxLength 就可以不用 slice 截取
e.target.value = val.slice(0, 2);
})
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
如果只要求在提交时警告直接用pattern属性就好
如果你希望输入的时候就阻止输入其他字符, 就在change事件里操作