vue2项目中对el-table表格中对输入框字段进行校验并且点击按钮新增一条数据
时间: 2024-03-28 22:39:18 浏览: 132
对于 `el-table` 表格中的输入框字段进行校验并且点击按钮新增一条数据,可以通过以下步骤实现:
1. 在表格中将要进行校验的字段设置为可编辑的输入框,并绑定一个 `v-model` 指令,用于实时获取输入框的值。
2. 在需要校验的时候,通过正则表达式或其他方式校验输入框的值是否符合要求。
3. 如果输入框的值不符合要求,可以通过 `this.$message` 提示用户输入不合法,并将输入框的值重置为之前的值或者让用户重新输入。
4. 当用户点击新增按钮时,先对输入框的值进行校验,如果校验通过,将输入框的值插入到表格数据中。
以下是一个简单的示例代码,以手机号码为例进行校验并新增数据:
```html
<template>
<div>
<el-table :data="tableData" style="width: 100%">
<el-table-column label="姓名" prop="name"></el-table-column>
<el-table-column label="手机号码" prop="phone">
<template slot-scope="{ row }">
<el-input v-model="row.phone" @blur="checkPhone(row)"></el-input>
</template>
</el-table-column>
</el-table>
<el-button type="primary" @click="addData">新增数据</el-button>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
{ name: '张三', phone: '13888888888' },
{ name: '李四', phone: '13999999999' },
{ name: '王五', phone: '13000000000' }
],
newRecord: {
name: '',
phone: ''
}
}
},
methods: {
checkPhone(row) {
const reg = /^1[3-9]\d{9}$/ // 手机号码正则表达式
if (!reg.test(row.phone)) {
this.$message.error('请输入正确的手机号码')
row.phone = '' // 重置输入框的值
}
},
addData() {
const reg = /^1[3-9]\d{9}$/ // 手机号码正则表达式
if (this.newRecord.name && reg.test(this.newRecord.phone)) {
this.tableData.push(this.newRecord)
this.newRecord = {
name: '',
phone: ''
}
} else {
this.$message.error('请输入正确的姓名和手机号码')
}
}
}
}
</script>
```
在上面的示例代码中,当用户点击新增按钮时,先对输入框的值进行校验,如果校验通过,将输入框的值插入到表格数据中。如果校验不通过,通过 `this.$message` 提示用户输入不合法。
阅读全文