input输入长度与限制内容
1、限制input最大长度
<input type="text" maxlength="5" /> //可以
<input type="number" maxlength="5" /> //没有效果
<input type="number" οninput="if(value.length>5) value=value.slice(0,5)" /> //js控制,可以
<input type="tel" maxlength="5" /> //tel类型,可以
此外,tel类型的input在ios上会调出全数字键盘,而number类型的input则会调出带有标点符号的键盘。
2、限制input输入框为纯数字:
a、onkeyup = "value=value.replace(/[^\d]/g,'')"
使用 onkeyup 事件,有 bug ,那就是在中文输入法状态下,输入汉字之后直接回车,会直接输入字母
b、onchange = "value=value.replace(/[^\d]/g,'')"
使用 onchange 事件,在输入内容后,只有 input 丧失焦点时才会得到结果,并不能在输入时就做出响应
c、oninput = "value=value.replace(/[^\d]/g,'')"
使用 oninput 事件,完美的解决了以上两种问题,暂时还没有出现其它问题。