1. 概述

在表单验证中,我们目前就验证的是比如单值双值这些情况,但是如果表单时用户自定义的,比如地址控件,这样的控件,我们返回的是一个JSON,验证必填就比较麻烦了,我们需要写很多的if else ,这样扩展性不是很好。

2. 解决办法

  1. 先获取表单控件的元数据。
let fieldMeta=this.getField(tableName,field);
let ctlType=fieldMeta.ctltype;
  1. 再定义一个特殊控件的验证规则。

特殊验证规则定义:
参考:
components/js-comps/exceptionValid.js

  1. 在验证时优先这些特殊规则的控件。
//先验证特殊的情况。
if(ExceptionRequired[ctlType]){
    return ExceptionRequired[ctlType](fieldMeta,value);
}

3. 具体写法说明

验证分为两类

3.1.验证必填

ExceptionRequired

比如验证地址控件:

"rx-address":function (field,val){
    return {
        success:true,
        msg:"提示信息"
    }
}

参数:

field: 字段元数据:
{comment:"备注",type:"字段类型",ctltype:"控件类型", required:"必填", valmode:"值类型"}
val: 字段的值

返回值为:

{
    success:true,
    msg:"提示信息"
}

3.2.验证字段规则

ExceptionVtype

比如地址控件:

let ExceptionVtype={
    /**
    "rx-address":function (field,vtype,v){

    }
     */
}

参数:

field: 字段元数据:
{comment:"备注",type:"字段类型",ctltype:"控件类型", required:"必填", valmode:"值类型"}
vtype:”验证规则”

val: 字段的值

返回值为:

{
    success:true,
    msg:"提示信息"
}
文档更新时间: 2022-01-24 18:02   作者:zyg