element表格内多个输入框时如何添加表单校验
在Element UI中,当表格内有多个输入框时,可以使用el-form
组件来添加表单验证。你需要为每个输入框设置el-form-item
,并在提交表单时触发el-form
的validate
方法。
以下是一个简单的例子:
<template>
<el-form :model="form" :rules="rules" ref="form" label-width="120px">
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="date" label="日期" width="180">
</el-table-column>
<el-table-column prop="name" label="姓名" width="180">
<template slot-scope="scope">
<el-form-item :prop="'[' + scope.$index + '].name'" :rules="rules.name">
<el-input v-model="scope.row.name"></el-input>
</el-form-item>
</template>
</el-table-column>
<!-- 其他列 -->
</el-table>
<el-button type="primary" @click="validateForm">提交</el-button>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {},
tableData: [
{ date: '2016-05-02', name: '' },
// 其他数据
],
rules: {
name: [
{ required: true, message: '请输入姓名', trigger: 'blur' },
{ min: 3, max: 5, message: '姓名长度在 3 到 5 个字符', trigger: 'blur' }
]
// 其他规则
}
};
},
methods: {
validateForm() {
this.$refs.form.validate((valid) => {
if (valid) {
alert('验证通过');
} else {
console.log('验证失败');
return false;
}
});
}
}
};
</script>
在这个例子中,el-form
的:model
绑定了form
对象,:rules
绑定了包含验证规则的rules
对象。el-table
的:data
绑定了包含表格数据的tableData
数组。每个输入框都被包裹在el-form-item
中,并设置了相应的:prop
和:rules
。
提交按钮触发validateForm
方法,该方法调用el-form
的validate
方法进行验证。如果验证通过,可以执行后续的提交操作;如果验证失败,则会停留在当前页面,并且不会执行提交操作。
评论已关闭