ElementUI -- 表单嵌套表格,v-for生成的表单项实现表单验证。

一、效果演示

二、el-form的验证实现

1、在 el-form 上添加规则对象,名称可自定义 :rules=“skuRule”
2、给 el-form-item 添加属性 props=“名称”,需注意的是这个名称需要与规则对象skuRule中的属性名一致,不然验证不了
3、在 data 中定义 skuRule规则。
注意:v-for循环生成的表单项校验大体上与一般校验是一致的,其中最大的差异就在于prop值得显示。因为表单验证的规则和字段是一一对应的,我们v-for出来的字段名又都是一样的,如果不做相应处理,一旦触发验证,那便会牵一发而动全身,如下图所示:
ElementUI -- 表单嵌套表格,v-for生成的表单项实现表单验证。_第1张图片

处理方法:prop的值是以el-form中model绑定的值为起点一层一层往下获取到的,可以先找到验证字段所在的数组,然后获取数组下标,最后定位到prop验证字段,层级间使用"."符号隔开,写法如下:

:prop="'sku_list.' + scope.$index + '.'+'price'"
:rules="skuRule.oprice"

1、界面代码:

 

    
        
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
    

2、校验规则:

data() {
    return {
        listModel: {
            sku_list: []
        },
        skuRule: {
            oprice: [{ required: true, message: '请输入原始价', trigger: 'blur' }],
            price: [{ required: true, message: '请输入会员价', trigger: 'blur' }],
            stock_num: [{ required: true, message: '请输入商品库存', trigger: 'blur' }],
            name: [{ required: true, message: '请输入sku标题', trigger: 'blur' }]
        },
    };
},

你可能感兴趣的:(vue.js,element-ui)