1. 概述
在表单验证中,我们目前就验证的是比如单值双值这些情况,但是如果表单时用户自定义的,比如地址控件,这样的控件,我们返回的是一个JSON,验证必填就比较麻烦了,我们需要写很多的if else ,这样扩展性不是很好。
2. 解决办法
- 先获取表单控件的元数据。
let fieldMeta=this.getField(tableName,field);
let ctlType=fieldMeta.ctltype;
- 再定义一个特殊控件的验证规则。
特殊验证规则定义:
参考:components/js-comps/exceptionValid.js
- 在验证时优先这些特殊规则的控件。
//先验证特殊的情况。
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