使用element ui中el-table-column进行自定义校验
作者:花村xld
这篇文章主要介绍了使用element ui中el-table-column进行自定义校验方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
element ui中el-table-column进行自定义校验
最近在工作中遇到了这个需求点击确定时要将表格中的输入框经行校验,记录一下方便以后复用。
有两种方式:
第一种是提示的方式
效果:输入框为空的时候:

效果:点击确定是进行校验:

效果:

代码的思路是这样的:
data中需要定义一个用来标记的变量,名字是随便起的.
data(){
return:{
value:''
}
}下一步是在点击确定时:对表格数组进行循环并判断每一项是否为空,只要有一个为空就提示,并this.value++;没有为空的时候,就将this.value置空。
list.forEach((item,index)=>{
if (item.'什么什么什么' === '' ||){
ElMessage({
showClose: true,
message: `提示:下列第 ${index+1} 行 请补充完整`,
type: 'warning',
})
this.value ++;
}else {
this.value = 0;
}
})
if (this.value === 0) {
'value等于0就表示数组中没有为空的了'
}第二种方式要比第一种更准确一点
效果:验证

源码奉上:
<template>
<div>
<el-table :data="people" style="width: 100%">
<el-table-column prop="name" label="Name">
<template #default="{ row }">
<el-input v-model="row.name" @blur="validateName(row)" />
<span v-if="row.nameError" class="error">{{ row.nameError }}</span>
</template>
</el-table-column>
<el-table-column prop="age" label="Age">
<template #default="{ row }">
<el-input-number v-model="row.age" @change="validateAge(row)" :min="0" :max="150" />
<span v-if="row.ageError" class="error">{{ row.ageError }}</span>
</template>
</el-table-column>
</el-table>
<el-button type="primary" @click="validateForm">确定</el-button>
</div>
</template><script>
import { ref } from 'vue';
export default {
setup() {
const people = ref([
{ name: "", age: "", nameError: "", ageError: "" },
{ name: "", age: "", nameError: "", ageError: "" },
{ name: "", age: "", nameError: "", ageError: "" }
]);
const validateName = (person) => {
if (!person.name) {
person.nameError = "Name is required.";
} else {
person.nameError = "";
}
};
const validateAge = (person) => {
if (!person.age) {
person.ageError = "Age is required.";
} else if (person.age < 0 || person.age > 150) {
person.ageError = "Age must be between 0 and 150.";
} else {
person.ageError = "";
}
};
const validateForm = () => {
let isValid = true;
for (let person of people.value) {
validateName(person);
validateAge(person);
if (person.nameError || person.ageError) {
isValid = false;
}
}
if (isValid) {
// 执行提交表单的操作
console.log("表单校验通过,执行提交操作");
} else {
console.log("表单校验未通过");
}
};
return {
people,
validateName,
validateAge,
validateForm
};
}
};
</script><style>
.error {
color: red;
}
</style>有需求可以试试.
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- vue如何使用element ui表格el-table-column在里面做判断
- el-table-column叠加el-popover使用示例小结
- Vue+ElementUI踩坑之动态显示/隐藏表格的列el-table-column问题
- Vue element el-table-column中对日期进行格式化方式(全局过滤器)
- vue中如何给el-table-column添加指定列的点击事件
- 关于el-table-column的formatter的使用及说明
- el-table-column 内容不自动换行的解决方法
- vue中el-table格式化el-table-column内容的三种方法
- el-table el-table-column表头嵌套循环数据的示例代码
