Kendo UI开发教程(9): Kendo UI Validator 概述
Kendo UI Validator 支持了客户端校验的便捷方法,它基于HTML 5 的表单校验功能,支持很多内置的校验规则,同时也提供了自定义规则的便捷方法。
完整的Kendo UI 的Validator可以参见API 文档。
HTML 5 表单校验
HTML5 的一项重要功能是HTML 5 表单校验属性, 通过设置限制属性为HTML输入设置输入类型,值域等,然后由浏览器来检查输入是否合法。 支持的几种规则有:
- 必填域
- 正规表达式规则
- 最大,最小值域
- HTML 5 数据类型( 如EMail, URL,数值等)
为了使用这些规则,可以通过为HTML输入添加对应的属性的方法来设置。比如:
1
|
< input type = "email" required>
|
如果浏览器支持HTML5,则它会自动根据这些规则来检查输入的值是否符合规则,如果输入数据无效,浏览器会显示错误信息给用户,也不会提交表单。HTML5 也支持了一些新添的JavaScript方法来实现手工校验,比如checkValidity()方法。
HTML 5表单校验存在的问题
HTML5 表单校验非常有用,但它也存在一些问题,比如:
- 一些旧版本浏览器不支持HTML5.
- 某些支持HTML5的浏览器对HTML 5表单支持不完整。
- 由浏览器生成的错误信息很难为它们重新定义显示风格。
Kendo UI Validator就是为了解决上面的这些问题而实现的。
Kendo UI Validator的基本配置
Kendo UI Validator支持标准的HTML5表单校验属性,从而允许你正常使用HTML 5表单校验属性,从而可以在所有浏览器(IE7+)上使用这些属性,比如:
1
|
< div id = "myform" >
|
2
|
< input type = "text" name = "firstName" required />
|
3
|
< input type = "text" name = "lastName" required />
|
4
|
< button id = "save" type = "button" >Save</ button >
|
5
|
</ div >
|
然后,在页面上添加Kendo UI Validator,添加在Script部分,比如:
1
|
// Initialize the Kendo UI Validator on your "form" container
|
2
|
// (NOTE: Does NOT have to be a HTML form tag)
|
3
|
var validator = $("#myform").kendoValidator().data("kendoValidator");
|
4
|
5
|
// Validate the input when the Save button is clicked
|
6
|
$("#save").on("click", function() {
|
7
|
if (validator.validate()) {
|
8
|
// If the form is valid, the Validator will return true
|
9
|
save();
|
10
|
}
|
11
|
});
|
使用这样的简单配置,这些HTML5 表单校验在旧版本浏览器中也可以工作,并且Web应用可以完全控制错误信息的显示和其显示风格,当点击“Save” 按钮后,如果输入不满足输入规则,Kendo UI Validator显示合适的错误信息, 每个HTML元素也可以通过validatorMessage定义一个自定义的错误信息,比如:
1
|
< input type = "tel" pattern = "\d{10}" validationMessage = "Plase enter a ten digit phone number" />
|
缺省支持的校验规则
输入项必填规则
1
|
< input type = "text" name = "firstName" required />
|
输入必须符合指定的正规表达式
1
|
< input type = "text" name = "twitter" pattern = "https?://(?:www\.)?twitter\.com/.+i" />
|
最大,最小值限制
1
|
< input type = "number" name = "age" min = "1" max = "42" />
|
输入步骤和最大,最小值限制一同使用
1
|
< input type = "number" name = "age" min = "1" max = "100" step = "2" />
|
输入为有效的URL
1
|
< input type = "url" name = "url" />
|
输入为有效的EMail
1
|
< input type = "email" name = "email" />
|
除此之外,Kendo UI Validator也支持自定义的规则。
自定义规则
使用自定义规则时的注意事项:
- 表单的每个元素都会执行自定义规则,因此如果表单中有多个输入项,注意检查输入项的类型,然后再执行合适的校验规则,比如:
1
|
custom: function (input) {
|
2
|
if (input.is("[name=firstName]")) {
|
3
|
return input.val() === "Test"
|
4
|
} else {
|
5
|
return true;
|
6
|
}
|
7
|
}
|
- 如果自定义规则返回true,那么表示校验成功。
- 如果有多个自定义规则,那么会按属性执行这些自定义规则,在发生错误时停止后续校验规则的执行,而是显示错误信息。只有所有规则都通过才表示表单校验成功。
- 自定义错误信息必须和自定义规则匹配,如果没有定义自定义错误信息,则显示一个简单的出错图标。
自定义输入提示的位置
缺省情况下Kendo UI 将输入提示显示在输入框附近,然而,如果输入通过Kendo UI插件转换为ComboBox ,AutoComplete 或其它Kendo UI组件后,缺省的输入提示可能会影响到某些重要信息的显示,这时,你可以指定在什么地方显示输入提示,这时,可以通过添加一个span元素,定义data-for 属性到需要校验的输入框的name, 并添加 .k-invalid-msg 类。
比如:
1
|
custom: function (input) {
|
2
|
if (input.is("[name=firstName]")) {
|
3
|
return input.val() === "Test"
|
4
|
} else {
|
5
|
return true;
|
6
|
}
|
7
|
}
|
Kendo UI开发教程(9): Kendo UI Validator 概述相关推荐
- Kendo UI开发教程(8): Kendo UI 特效概述
Kendo UI Fx 提供了一个丰富,可扩展,性能经过优化的工具集合用来完成HTML元素的过渡显示.每种特效近可能的使用CSS Transition ,对于一些老版本浏览器使用修改属性的方法作为补充 ...
- Kendo UI开发教程:Kendo UI模板概述
2019独角兽企业重金招聘Python工程师标准>>> Kendo UI框架提供了一个易用,高性能的JavaScript模板引擎.通过模板可以创建一个HTML片段然后可以和JavaS ...
- UI培训教程分享:UI设计的分类有哪些?
本期为大家介绍的UI培训教程是关于UI设计分类这块的,在UI设计中,我们常应用到的终端设备可大致分为三类,分别为移动端UI设计.PC端UI设计.其他终端UI设计. UI培训教程分享:UI设计的分类有哪 ...
- UI培训教程分享:UI设计如何确定设计风格
在UI设计工作岗位中,进行设计工作的时候,UI设计师门需要对整体的设计要素进行把控,这样才能设计出优秀的设计作品,本期小编为大家介绍的UI培训教程就是关于UI设计如何确定设计风格,希望以下内容能够给大 ...
- UI培训教程分享:Ui设计的细节规范有哪些需要注意?
在职场中,有很多UI设计师是零经验的,都是刚学会技术就来入职的,与经验丰富的其他成员来说,新人一定要提高自己的工作能力,本篇UI培训教程为大家分享的是Ui设计的细节规范有哪些需要注意?希望能给大家在工 ...
- 【Android -- UI开发】一份 UI 开发学习指南
思维导图 推荐资料:官方文档 六大布局 网上有人比喻的很好:布局好比是建筑里的框架,组件按照布局的要求依次排列,就组成了用于看见的漂亮界面了. 请看文章:[Android – UI 开发]六大布局 U ...
- Kendo UI开发教程 2 准备Kendo UI开发环境
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 首先你需 ...
- Kendo UI开发教程(23): 单页面应用(一)概述
Kendo单页面应用(Single-Page Application,缩写为SPA)定义了一组类用于简化Web应用(Rich Client)开发,最常见的单页面应用为Gmail应用,使用单页面可以给用 ...
- Kendo UI开发教程(25): 单页面应用(三) View
View为屏幕上某个可视部分,可以处理用户事件. View可以通过HTML创建或是通过script元素.缺省情况下View将其所包含的内容封装在一个Div元素中. Kendo创建View有两种方式: ...
最新文章
- Phpcms V9手机门户设置教程:怎么用PC V9做手机网站
- 西门子smart200以太网通讯协议
- 个性化推荐系统(一)---今日头条等的内容划分、分类
- 深入探讨 java.lang.ref 包--转
- 数据库三范式经典实例解析
- python处理 ctrl+c
- springboot学习笔记(一)
- mysql 按照in id顺序_Mysql查询结果顺序按in()中ID的顺序排列的案例区分
- Lotus 下部门间用户的移动操作
- [导入]常用26句生活用语[英语]
- LoadRunner Interview Questions
- 【回归预测】基于matlab离群鲁棒极限学习机(ORELM)求解回归预测问题【含Matlab源码 1441期】
- java中怎样上传zip_java服务器如何对zip文件分包上传?
- 凸二次规划的解法(旋转算法)
- python和c 情侣网名_简单情侣网名的介绍
- iPhone 重大缺陷 存储空间耗尽后无法正常开机
- 金行健:进门就被抓拍人脸自动注册会员,杭州一大学生将商场告上法庭
- 美国计算机科学奥林匹克竞赛试题acsl,2020年国际数学奥林匹克竞赛试题全部出炉,网友:给答案都看不懂...
- addition过程 sgnb_5G NSA Option 3x组网完整接入流程系统性介绍!
- C++实现SolidWorks二次开发第一步:画一个方块
热门文章
- R7-8 魔法优惠券 (25 分)
- 摄像头拍照功能是怎样实现的?自己动手做一个!
- 华为畅享max有没有人脸识别_看到Meeting视频会议一体机融合华为分布式能力,共建智能会议新体验...
- mysql5.7存储json_MySQL5.7的json数据格式的问题
- linux脚本登录启动失败,在Linux上检查用户登录成功与失败的shell脚本
- es6新特性之Map
- python pandas 对带时间序列的数据进行重采样处理
- 【Unity与23种设计模式】访问者模式(Visitor)
- Swift - UITableView里的cell底部分割线左侧靠边
- Hsiao United Cheap Nike Air Max