最近从react转vue,尝试限制用户输入,比如输入内容只能为number,否则不改变值,在react里有受限组件所以很容易做到,但是vue里我尝试用react的方法貌似不行。。
通过正则过滤,达到了authorId只能为纯数字的目的,但是在页面上input就算输入不是数字也会显示
尝试用p输出authorId,是只输出符合要求的内容。
问题:不用过滤器,怎么才能使input达到p的效果,只输出符合要求的内容(同步视图和数据)
template
{{authorId}}
mutation
[types.CHANGE_AUTHORID] (state, value) {
if (!/^\d*$/.test(value))
return
state.authorId = value
}
目前暂时的解决方案:type="number" 不是通用解决方案(当需求不再是数字的情况)
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这个你的用计算属性实现吧
用vue-validate吧,这是官方推荐的手段。
或者自己手写component
自己监听input事件,然后过滤掉吧
比如input通过v-model绑定到msg,input设置keyup事件监听,在监听器内对输入数据进行校验,不通过就重写msg