最近在做一些小程序的项目,首次使用了uniapp;在使用input标签时发现输入框的各种问题,特别是密码输入框和number类型不能复用的问题很是头疼;
网上关于此类问题,都是让监听input事件,包括官方回答也是如此,进行正则验证;但是并没有很好的效果;
经过多次尝试,发现只需要在watch中对变量进行判断就可以,不需要监听任何事件;
把最终的解决方法记录一下:
password(val, oldval) { let num = val.charAt(val.length - 1); var reg = new RegExp("^[0-9]*$"); if (!reg.test(num)) { setTimeout(() => { this.password = val.slice(0, -1); }, 0); } else { setTimeout(() => { this.password = val; }, 0); } },