el-table通过这样封装可以实现校验-表格校验的原理
在Vue.js中使用Element UI库时,可以通过el-form
和el-table
组件来实现表单和表格的关联验证。以下是一个简单的例子,展示了如何通过封装的方式实现表格内容的验证:
<template>
<el-form ref="formRef" :model="form" :rules="rules">
<el-table :data="form.items" border>
<el-table-column prop="name" label="Name" :rules="rules.name"></el-table-column>
<el-table-column prop="age" label="Age" :rules="rules.age"></el-table-column>
</el-table>
<el-button type="primary" @click="validateTable">Validate</el-button>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
items: [
{ name: '', age: null },
// ... more items
]
},
rules: {
name: [
{ required: true, message: 'Name is required', trigger: 'blur' }
],
age: [
{ required: true, message: 'Age is required', trigger: 'blur' },
{ type: 'number', message: 'Age must be a number', trigger: 'blur' }
]
}
};
},
methods: {
validateTable() {
this.$refs.formRef.validateField('items', (valid) => {
if (!valid) {
console.log('Table validation failed');
} else {
console.log('Table validation passed');
}
});
}
}
};
</script>
在这个例子中,el-table
组件的:data
属性绑定到了表单数据form.items
数组。el-table-column
组件的:rules
属性接收一个验证规则数组,用于对该列的数据进行验证。el-form
组件的:model
属性绑定整个表单对象,:rules
属性包含了所有字段的验证规则。
validateTable
方法通过this.$refs.formRef.validateField
调用表单的validateField
方法来逐项验证表格中的数据。如果验证失败,它会打印出错误信息;如果验证通过,它会输出验证成功的信息。
这个封装方式使得你可以在多个地方重复使用这个验证逻辑,而不需要在每个地方都写一遍相同的验证代码。
评论已关闭