iview表单校验向validator传递信息的奇淫巧计

最近在使用iview组件的时候,业务逻辑上碰到了一个小问题,在Table内部使用slot去渲染Form表单,如图所示

但是一来需要校验表格中各表单组件的内容,二来,又无法将Form放在template slot外,无奈只能创建多个Form。不知道是数据层级太多还是其他问题,在对应Input输入框的validator中,每次通过change或者blur触发总是获取到输入的上一次的值,真真是百思不得其解。偏偏Input组件又要在table多次渲染,因此在validator中校验时,无法通过index直接拿到v-model绑定的数据。

苦思良久,还是准备从validator函数的参数上下手,熟悉iview表单的都知道,validator参数中有一个rule属性,包含了一些信息,在我多次尝试后,发现其中的message是直接作为校验失败的提示的,且,可以在validator中修改,于是乎,我做了一个大胆的尝试!

如上图所示,在FormItem中单独设置rules,通过在message添加用来分隔数据和报错信息的符号,而后在validator中进行取值,这样就可以跟据index去拿到对应data中的值啦。为了这么个破玩意儿真是煞费苦心。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
iview是一款基于Vue.js的UI组件库,提供了丰富的表格组件和表单校验功能。 在iview的表格组件中,可以使用表单校验功能来对每一行或特定列的数据进行校验。可以根据需要设置表格的rules属性来定义校验规则。 首先,我们需要定义校验规则,可以使用常见的校验规则例如required、max、min等,也可以定义自定义的校验规则。每个校验规则都可以附加一条错误信息。 在表格的columns属性中,可以通过scopedSlots可以定义每一列的渲染方式。在scopedSlots中,我们可以使用iview提供的FormItem组件来实现表单校验功能。 具体实现步骤如下: 1. 在表格的columns属性中,为需要校验的列设置scopedSlots属性,并在scopedSlots中使用FormItem组件包裹需要校验表单元素。 2. 在FormItem组件中,可以使用prop属性来指定表单元素对应的字段名。同时,可以在FormItem组件中添加rules属性,指定对应的校验规则。 3. 在设置完校验规则后,可以通过v-model来与数据进行双向绑定。在校验不通过时,FormItem会自动显示错误信息。 通过以上步骤,我们就可以在iview的表格组件中实现表单校验功能。当用户在表格中输入数据时,会根据定义的校验规则进行实时校验,并在不通过时给出错误提示。 这样的表格内表单校验功能,可以帮助开发者更方便地对表格中的数据进行校验和验证,确保数据的准确性和完整性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值