Vue js 动态更新 set/unset class
Vue js dynamic update set/unset class
我几乎没有输入提交按钮。有一些将 'has-error' class 添加到输入的验证逻辑。我怎样才能取消这个 class 的焦点?
模板:
<div class="input-styled badge-icon" :class="{ 'has-error': errors.email}">
<input type="text" @focus="delete errors.email" v-model="email" placeholder="example@gmail.com">
</div>
<button @click="submit">Submit</button>
JS
data() {
return {
errors: {},
email: ''
}
},
methods: {
submit(){
this.errors = {};
if(!this.email){
this.errors.email = 'Something';
}
}
}
我正在尝试删除错误 属性,尝试@focus='errors.email="" ',但是 class 'has-error' 只有在我输入内容时才会消失。 @focus 事件有效,我认为我应该调用一些函数来更新我的 DOM?
将对组件数据的操作移至函数是一种很好的做法。您可以通过创建 resetValidation
函数并将其绑定到输入字段上的焦点事件来实现所需的验证重置。
方法本身应将 errors
字段重置为假值。下面的示例假设表单中有多个输入字段。每个字段都应使用相应的错误字段名称调用 resetVlidation
方法。如果没有提供字段,我们可以整体重置验证:
resetValidation (field) {
if (field) {
this.errors = {
...this.errors,
[field]: ''
}
} else {
this.errors = {}
}
请检查下面的工作示例:
我几乎没有输入提交按钮。有一些将 'has-error' class 添加到输入的验证逻辑。我怎样才能取消这个 class 的焦点?
模板:
<div class="input-styled badge-icon" :class="{ 'has-error': errors.email}">
<input type="text" @focus="delete errors.email" v-model="email" placeholder="example@gmail.com">
</div>
<button @click="submit">Submit</button>
JS
data() {
return {
errors: {},
email: ''
}
},
methods: {
submit(){
this.errors = {};
if(!this.email){
this.errors.email = 'Something';
}
}
}
我正在尝试删除错误 属性,尝试@focus='errors.email="" ',但是 class 'has-error' 只有在我输入内容时才会消失。 @focus 事件有效,我认为我应该调用一些函数来更新我的 DOM?
将对组件数据的操作移至函数是一种很好的做法。您可以通过创建 resetValidation
函数并将其绑定到输入字段上的焦点事件来实现所需的验证重置。
方法本身应将 errors
字段重置为假值。下面的示例假设表单中有多个输入字段。每个字段都应使用相应的错误字段名称调用 resetVlidation
方法。如果没有提供字段,我们可以整体重置验证:
resetValidation (field) {
if (field) {
this.errors = {
...this.errors,
[field]: ''
}
} else {
this.errors = {}
}
请检查下面的工作示例: