§ Fox2.0前端框架-校验器


§ 1.校验规则

序号 规则 描述
1 required:true 必须输入的字段
2 email:true 必须输入正确格式的电子邮件
3 url:true 必须输入正确格式的网址
4 date:true 必须输入正确格式的日期。
5 dateISO:true 必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22。只验证格式,不验证有效性
6 number:true 必须输入合法的数字(负数,小数)
7 digits:true 必须输入整数
8 creditcard:true 必须输入合法的信用卡号
9 equalTo:"field" 输入值必须和 field 相同
10 maxlength:5 输入长度最多是 5 的字符串(汉字算一个字符)。
11 minlength:10 输入长度最小是 10 的字符串(汉字算一个字符)
12 rangelength:[5,10] 输入长度必须介于 5 和 10 之间的字符串(汉字算一个字符)
13 range:[5,10] 输入值必须介于 5 和 10 之间
14 max:5 输入值不能大于 5
15 min:10 输入值不能小于 10

§ 2.校验默认提示

序号 描述
1 required: "这是必填字段"
2 remote: "请修正此字段"
3 email: "请输入有效的电子邮件地址"
4 url: "请输入有效的网址"
5 date: "请输入有效的日期"
6 dateISO: "请输入有效的日期 (YYYY-MM-DD)"
7 number: "请输入有效的数字"
8 digits: "只能输入数字"
9 creditcard: "请输入有效的信用卡号码"
10 equalTo: "你的输入不相同"
11 extension: "请输入有效的后缀"
12 maxlength: Validator.format("最多可以输入 {0} 个字符")
13 minlength: Validator.format("最少要输入 {0} 个字符")
14 rangelength: Validator.format("请输入长度在 {0} 到 {1} 之间的字符串")
15 range: Validator.format("请输入范围在 {0} 到 {1} 之间的数值")
16 max: Validator.format("请输入不大于 {0} 的数值")
17 min: Validator.format("请输入不小于 {0} 的数值")

§ 3.自定义校验器

平台提供了自定义校验器的扩展机制

§ 3.1自定义公共校验器

    fox.valiator.addMethod("photo_required",function (value,param) {
        if(value === undefined){
            return false;
        }
        return value.image.length > 0;
    },"必输字段");
1
2
3
4
5
6

上述方法为新增公共校验器的方法,参数为(name, method, message),其中name为校验器名称,method为校验方法,message为校验不通过的提示消息

§ 3.2自定义私有校验器

    var vm=fox.custom.vue({
            el:"#single",
            //数据
            data:vmData,
            //方法
            methods:{ },
            //自定义校验器
            validator:{
                //人脸识别必输校验
                face_required:{
                    //校验方法
                    method:function (value,param) {
                        if(value === undefined){
                            return false;
                        }
                        return value.image && value.image.length > 0 
                            && (value.image != "resource/image/icons/face.png" );
                    },
    
                    //提示消息
                    message:"请进行人脸识别"
                },
    
                //签名必输校验
                sign_required:{
                    //校验方法
                    method:function (value,param) {
                        if(value === undefined){
                            return false;
                        }
                        return value.image && value.image.length > 0 
                            && (value.image != "resource/image/icons/sign.png" );
                    },
    
                    //提示消息
                    message:"请进行签名"
                }
            }    });
    };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

在创建vm对象的入参中,增加validator属性,validator中的内容为私有的校验器。

§ 4.使用方式

本节将会展示如何使用校验器

§ 4.1将校验规则写到控件中

<fox-text v-verify="['require']" tag="必须输入信息" v-model="name"  class="my-text">客户姓名</fox-text>
上述控件中 v-verify为设置校验规则的指令,而校验规则可以通过数组形式指定多个校验规则,另外tag属性可以为该控件指定特定的错误提示,否则使用默认的提示。
    
<fox-idcard v-verify="['require','number']" v-model="idNumber" v-on:show="showIdImage" class="my-text">身份证号码</fox-idcard>
    上述控件中体现多校验规则的写法
    
<fox-select v-verify="'require'" v-model="sex" v-bind:datasoruce="m_dataSource.sex" class="my-text">性别</fox-select>
上述控件中体现一个校验规则的简要写法
1
2
3
4
5
6
7
8

§ 4.2 在代码中调用校验

    //-------------校验 start----------------//
    var checkRes=this.m_check();
    if(checkRes.pass  == false){
       fox.layer.open("请填写完整信息["+checkRes.messageList[0]+"]");
       return;
    }
    //-------------校验 end----------------//

m_check方法会校验page上的所有校验字段,返回值得结构为

    {
        //是否通过校验,true为通过,false为不通过
    pass:pass,
    //不通过数据的name的列表
        elementList:elementList,
    //校验错误消息列表
        messageList:messageList
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

§ 4.3在代码中调用部分组件校验

    //-------------校验 start----------------//
    var checkRes=this.m_check([“name”,”sex”,”age”]);
    if(checkRes.pass  == false){
       fox.layer.open("请填写完整信息["+checkRes.messageList[0]+"]");
       return;
    }
    //-------------校验 end----------------//
1
2
3
4
5
6
7
最后更新于: 4/15/2022, 2:41:22 PM