【问题标题】:Hide/delay password confirmation error in Vee validate在 Vee 验证中隐藏/延迟密码确认错误
【发布时间】:2018-03-12 09:36:23
【问题描述】:
当我在 Vuejs 中使用 Vee-validate 库时,当我关注密码字段时,它显示错误与密码确认不匹配。
我的代码:
<input v-validate="'required|min:6|confirmed'" type="password" class="form-control" id="password" name="password" placeholder="New Password" v-model="password"></input>
<span class="is-danger" v-if="errors.has('password')">{{errors.first('password')}}</span>
<input v-validate="'required'" type="password" class="form-control" id="password_confirmation" name="password_confirmation" placeholder="Verify password">
如何使用它,直到焦点密码确认字段才显示错误?
【问题讨论】:
标签:
validation
vuejs2
vee-validate
【解决方案1】:
好的,我搜索解决方案的时间比我应该的要长,但 vee-validate 中似乎没有内置方法,所以我想出了自己的解决方案。
Vue.use(VeeValidate)
new Vue({
el: '#app',
data: {
password: '',
password_confirmation: ''
},
computed: {
onConfirm () {
if(this.errors.items.length){
return this.errors.items.find(f => {
return f.rule !== "confirmed"
})
}
}
}
})
<script src="https://unpkg.com/vee-validate@2.0.5/dist/vee-validate.js"></script>
<script src="https://unpkg.com/vue@2.5.9/dist/vue.js"></script>
<div id="app">
<input v-validate="'required|min:6|confirmed'"
type="password"
class="form-control"
id="password"
name="password"
placeholder="New Password"
v-model="password">
</input>
<span class="is-danger"
v-if="errors.has('password') && onConfirm">
{{errors.first('password')}}
</span>
<input v-validate="'required'"
type="password"
class="form-control"
id="password_confirmation"
name="password_confirmation"
placeholder="Verify password"
v-model="password_confirmation"
>
<span class="is-danger"
v-if="!onConfirm &&
password_confirmation">
{{errors.first('password')}}
</span>
</div>