elment ui 表格中输入验证

特殊需求,要在表格中进行输入信息并做校验

关键写法如下,自定义校验

<el-form-item :prop="'tableData.'+scope.$index+'.price'" :rules="rules.price">

 <el-form-item :prop="'tableData.'+scope.$index+'.num'" :rules="{required:true,message:'为啥这么贵?',trigger:'blur' }">

需要根据其他输入信息作判断的情况:

:rules="{required:scope.row.price > 10000 ? true : false,message:'为啥这么贵?',trigger:'blur' }"

<el-form :model="form" ref="formRef">

<el-table :data="form.tableData"

border

style="width: 100%"

:cell-style="{ padding: '0' }"

:row-style="{ height: '50px' }">

<el-table-column prop="pinpai"

label="品牌"

:show-overflow-tooltip="true"

align="center">

<template #default="scope">

<el-form-item :prop="'tableData.'+scope.$index+'.pinpai'" :rules="rules.pinpai">

<el-input v-model="scope.row.pinpai"></el-input>

</el-form-item>

</template>

</el-table-column>

<el-table-column prop="price"

label="价格"

:show-overflow-tooltip="true"

align="center">

<template #default="scope">

<el-form-item :prop="'tableData.'+scope.$index+'.price'" :rules="rules.price">

<el-input v-model="scope.row.price"></el-input>

</el-form-item>

</template>

</el-table-column>

<el-table-column prop="num"

label="数量"

:show-overflow-tooltip="true"

align="center">

<template #default="scope">

<el-form-item :prop="'tableData.'+scope.$index+'.num'" :rules="{required:true,message:'为啥这么贵?',trigger:'blur' }">

<el-input v-model="scope.row.num"></el-input>

</el-form-item>

</template>

</el-table-column>

<el-table-column prop="desc"

label="描述"

:show-overflow-tooltip="true"

align="center">

<template #default="scope">

<el-form-item :prop="'tableData.'+scope.$index+'.desc'" :rules="{required:scope.row.price > 10000 ? true : false,message:'为啥这么贵?',trigger:'blur' }">

<el-input v-model="scope.row.desc"></el-input>

</el-form-item>

</template>

</el-table-column>

</el-table>

<!-- <el-button type="primary" @click="submite">确定</el-button> -->

<a @click="submite">确定</a>

</el-form>

效果图:

 当输入价格大于10000时,描述变成必填项

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用 Element UI 表格组件的示例,双击表格行可以编辑当前行数据: ```html <template> <div> <el-table :data="tableData" @row-dblclick="handleRowDblclick"> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> <el-table-column prop="gender" label="性别"></el-table-column> </el-table> <el-dialog title="编辑用户信息" :visible.sync="dialogVisible"> <el-form :model="currentData" ref="form" label-width="80px"> <el-form-item label="姓名"> <el-input v-model="currentData.name"></el-input> </el-form-item> <el-form-item label="年龄"> <el-input v-model.number="currentData.age"></el-input> </el-form-item> <el-form-item label="性别"> <el-radio-group v-model="currentData.gender"> <el-radio label="male">男</el-radio> <el-radio label="female">女</el-radio> </el-radio-group> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">取 消</el-button> <el-button type="primary" @click="saveData">确 定</el-button> </div> </el-dialog> </div> </template> <script> export default { data() { return { tableData: [ { name: "张三", age: 18, gender: "male" }, { name: "李四", age: 20, gender: "female" }, { name: "王五", age: 22, gender: "male" }, ], dialogVisible: false, currentData: null, }; }, methods: { handleRowDblclick(row) { this.currentData = Object.assign({}, row); this.dialogVisible = true; }, saveData() { this.$refs.form.validate((valid) => { if (valid) { Object.assign( this.tableData.find((item) => item.name === this.currentData.name), this.currentData ); this.dialogVisible = false; } }); }, }, }; </script> ``` 这里的表格使用 `@row-dblclick` 监听双击事件,当双击某一行时,会触发 `handleRowDblclick` 方法。 在该方法,我们将当前行的数据复制到 `currentData` ,并打开一个对话框来编辑该数据。对话框的表单使用了 `ref="form"` 来引用该表单,方便后面保存时进行表单验证。 当用户点击对话框的确定按钮时,会触发 `saveData` 方法,该方法首先进行表单验证验证通过后将当前行数据更新为 `currentData` 的数据,并关闭对话框。注意这里使用了 `Object.assign` 方法来将 `currentData` 对象的数据拷贝到对应的行数据。 以上代码仅供参考,具体实现方式可以根据具体需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值