我是这样做的:
1.获取需要变成该输入框的input框的实际宽度。
2.获取输入框的maxlength参数。(设置最大为8,最小为3)
3.获取原始框的父元素,在父元素里插入一个div,将input框隐藏并插入到该div里。
4.实例化maxlength个input框插入div,每个input框中间插一个i标签。input无左右边框,i只有虚线右边框。美化样式。
5.设置一个计数器active,初始化指向当前的第一个input框下标。
6.给每个input框添加click事件,触发时强制光标focus到第active框,及当前的第一个空白框。
7.给每个input框添加focus事件,触发时添加监听keyup事件。
8.给每个input框添加blur事件,触发时移除元素的keyup事件。
9.keyup事件触发时,获取键盘键值,键盘键值为数字的则写入并且计数器active加1,否则不写入,当为退格时删除当前元素的值并且计数器active减1。
10.keyup执行之后触发一个回调函数,获取所有input的值写入隐藏的input框,判断active的值是否超出边界,超出边界则置为边界值,手动触发当前计数器指向的input的click事件。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。