提交 d0a3505c 编写于 作者: D DCloud_LXH

fix: input同时设置number、maxlength、verifyNumber时,此时输入特殊字符内部valueSync取值错误

上级 ed7d56ac
......@@ -178,10 +178,23 @@ export default {
})
},
_onInput ($event, force) {
let outOfMaxlength = false
if (this.composing) {
return
}
// type="number" 不支持 maxlength 属性,因此需要主动限制长度。
if (this.inputType === 'number') {
const maxlength = parseInt(this.maxlength, 10)
if (maxlength > 0 && $event.target.value.length > maxlength) {
$event.target.value = $event.target.value.slice(0, maxlength)
this.valueSync = $event.target.value
// 字符长度超出范围不触发 input 事件
outOfMaxlength = true
}
}
if (~NUMBER_TYPES.indexOf(this.type)) {
// 在输入 - 负号 的情况下,event.target.value没有值,但是会触发校验 false
this.valid = this.$refs.input.validity && this.$refs.input.validity.valid
......@@ -200,16 +213,7 @@ export default {
}
}
// type="number" 不支持 maxlength 属性,因此需要主动限制长度。
if (this.inputType === 'number') {
const maxlength = parseInt(this.maxlength, 10)
if (maxlength > 0 && $event.target.value.length > maxlength) {
$event.target.value = $event.target.value.slice(0, maxlength)
this.valueSync = $event.target.value
// 字符长度超出范围不触发 input 事件
return
}
}
if (outOfMaxlength) return
this.$triggerInput($event, Object.assign({
value: this.valueSync
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册