之前公司有个业务,大体就是电话输入框限制只能输数字,并且只能11位。
用的时IVIEW组件库的组件Input,限制输入数字,那就type=Number呗。

此时却出现了maxlength失效的问题,上网查阅了一下此坑已经被无数人踩过了,就不多赘述,具体解决办法就是在输入时进行一个判断,超过长度时就用splice方法切割。
于是我根据IVIEW官方文档加了Input组件的onchange方法


却出现了这样的问题

双向绑定的phone字段确实被切割了,但是输入框里的数据居然没变!
于是我又试了试原生input的oninput方法,却没有出现这种情况。根据我的猜想,iview的Input组件的内置onchange方法应该是微任务,并不会刷新视图,而原生input组件的oninput会立即刷新视图,所以会出现这样的情况。所以在onchange方法中使用vue的nexttick方法即可。

本文介绍使用IVIEW Input组件时遇到的maxlength属性失效问题及解决方案。通过在onchange事件中使用Vue的nextTick方法来确保输入内容正确截断并更新视图。
549

被折叠的 条评论
为什么被折叠?



