提交 eb417de0 编写于 作者: L liuxiaohang

fix(h5、app): 修复input number和digit无法输入负数

上级 3b76535a
......@@ -8,7 +8,7 @@
class="uni-input-wrapper"
>
<div
v-show="!(composing || valueSync.length)"
v-show="!(composing || valueSync.length || !valid)"
ref="placeholder"
:style="placeholderStyle"
:class="placeholderClass"
......@@ -100,6 +100,7 @@ export default {
data () {
return {
composing: false,
valid: true,
wrapperHeight: 0,
cachedValue: '',
// Safari 14 以上修正禁用状态颜色
......@@ -183,16 +184,21 @@ export default {
return
}
// 处理部分输入法可以输入其它字符的情况
if (~NUMBER_TYPES.indexOf(this.type)) {
if (this.$refs.input.validity && !this.$refs.input.validity.valid) {
// 在输入 - 负号 的情况下,event.target.value没有值,但是会触发校验 false,因此做此处理
this.valid = this.$refs.input.validity && this.$refs.input.validity.valid
this.cachedValue = this.valueSync
// 处理部分输入法可以输入其它字符的情况
// 上一处理导致无法输入 - ,因此去除
/* if (this.$refs.input.validity && !this.$refs.input.validity.valid) {
$event.target.value = this.cachedValue
this.valueSync = $event.target.value
// 输入非法字符不触发 input 事件
return
} else {
this.cachedValue = this.valueSync
}
} */
}
// type="number" 不支持 maxlength 属性,因此需要主动限制长度。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册