el-table 输入框校验完整代码,校验失败输入框边框变红,输入框下方出现提示
时间: 2023-10-17 18:23:02 浏览: 103
好的,以下是一个示例代码:
```html
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="name" label="姓名">
<template slot-scope="scope">
<el-form-item :prop="'name'+scope.$index" :rules="[{required: true, message: '请输入姓名', trigger: 'blur'}]">
<el-input v-model="scope.row.name" :class="{error: $refs['name'+scope.$index][0].validateState === 'error'}" ref="name{{scope.$index}}" clearable></el-input>
<div class="error-tip" v-if="$refs['name'+scope.$index][0].validateState === 'error'">{{$refs['name'+scope.$index][0].validateMessage}}</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="age" label="年龄">
<template slot-scope="scope">
<el-form-item :prop="'age'+scope.$index" :rules="[{required: true, message: '请输入年龄', trigger: 'blur'}, {type: 'number', message: '年龄必须为数字', trigger: 'blur'}]">
<el-input v-model.number="scope.row.age" :class="{error: $refs['age'+scope.$index][0].validateState === 'error'}" ref="age{{scope.$index}}" clearable></el-input>
<div class="error-tip" v-if="$refs['age'+scope.$index][0].validateState === 'error'">{{$refs['age'+scope.$index][0].validateMessage}}</div>
</el-form-item>
</template>
</el-table-column>
</el-table>
```
在上面的代码中,我们使用了 Element UI 提供的 el-form-item 控件来对输入框进行校验。在 el-form-item 控件中,我们设置了 prop 属性,值为 `'name'+scope.$index` 或 `'age'+scope.$index`,这样就可以对每个输入框进行独立的校验。
在 el-form-item 控件中,我们还设置了 rules 属性,用来定义校验规则。在本例中,我们为姓名和年龄两个输入框设置了不同的校验规则。
在 el-input 控件中,我们设置了 v-model 属性,用来绑定输入框的值。我们还设置了 :class 属性,用来动态控制输入框的样式。当输入框的校验状态为 error 时,我们会为输入框添加一个 error 类,这样输入框的边框就会变成红色。
最后,在每个输入框下方,我们使用了一个 div 控件,用来显示校验失败的提示信息。我们通过 $refs 获取到每个 el-form-item 控件,并判断它的 validateState 属性是否为 error,如果是,就显示相应的提示信息。
希望这个示例能够帮到你!
阅读全文