提交 eb417de0 编写于 作者: L liuxiaohang

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

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