§ 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
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
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
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
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
2
3
4
5
6
7
← 服务请求 单页面框架(SPA) →