【发布时间】:2019-05-01 11:02:35
【问题描述】:
我们在使用Vee-Validate 验证的表单中遇到了一个奇怪的问题
我们有一个输入:
<input
v-validate="'required|name'"
id="firstName"
v-model="firstName"
:class="{'is-invalid': errors.has('firstName'), 'filled': firstNameFilled}"
type="text"
class="form-control"
name="firstName">
<label for="firstName">Vorname*</label>
以下脚本:
computed: {
...mapGetters({
formData: 'registration/formData'
}),
firstNameFilled () {
return this.formData.firstName !== null
},
firstName: {
get () {
return this.formData.firstName
},
set (data) {
this.$store.dispatch('registration/updateFormData', { firstName:
data })
}
},
methods: {
async validate () {
this.registrationButtonDisabled = true
try {
const needCaptcha = this.$route.query.utm_campaign &&
this.$route.query.utm_campaign.includes('display');
this.$store.dispatch('registration/updateFormData', { needCaptcha: needCaptcha });
const result = await this.$validator.validateAll()
if (result) {
this.next()
}
} catch (e) {
console.log(e)
}
this.registrationButtonDisabled = false
}
问题:
在某些移动 Chrome(第 7 版)上,当您开始在输入字段中输入时,该字段会立即重置并验证错误。注意:
- 这不会发生在所有版本 7 的 Chrome 上,具体取决于设备
- 如果您将键盘连接到手机,它就可以工作
- 只有在初始化后对该字段的第一次输入是通过触摸键盘完成时,它才会这样做。如果您使用普通键盘键入,请重置该字段,然后使用触摸键盘键入(如果有效)。
- 如果您不键入而是使用触控键盘建议,它会正确验证但仍为空。在这种情况下设置了填充类。这让我们认为模型已设置、验证,然后出于某种奇怪的原因重新设置。
这显然很难调试,有人有想法吗?
【问题讨论】:
标签: forms vue.js vee-validate