1. 需求
很多时候我们使用el-form想修改下错误提示的UI,比如table中使用form校验这类场景下错误提示的UI调整就非常重要。
2. 了解文档
Form-Item Scoped Slot
name | 说明 |
---|---|
error | 自定义表单校验信息的显示方式,参数为 { error } |
3.实际使用
html里使用错误的插槽将自定义错误插入。
<template><el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" ><el-form-item label="活动名称" prop="name"><el-input v-model="ruleForm.name"></el-input><template slot="error" slot-scope="itemScope"><!-- 自定义错误信息 --><div v-if="itemScope.error"><el-tooltip :content="itemScope.error" placement="top"><i class="el-icon-warning-outline sad-item-error" /></el-tooltip></div></template></el-form-item><el-form-item><el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button><el-button @click="resetForm('ruleForm')">重置</el-button></el-form-item><el-form>
</template>
javascript的代码大同小异
export default {data() {return {ruleForm: {name: ''},rules: {name: [{ required: true, message: '请输入活动名称', trigger: 'blur' },{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }]}};},methods: {submitForm(formName) {this.$refs[formName].validate((valid) => {if (valid) {alert('submit!');} else {console.log('error submit!!');return false;}});},resetForm(formName) {this.$refs[formName].resetFields();}}}
样式要做一些调整
.el-form-item{margin-bottom: 0;
}
/* 自己调整 */
.sad-item-error{position: absolute;color: #F56C6C;top: 0;left: 100%;line-height: 32px;
}
4. 结果
结果类似如下: