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开发教程(16): Kendo MVVM 数据绑定(五) Events
本篇和Kendo UI开发教程(14): Kendo MVVM 数据绑定(三) Click类似,为事件绑定的一般形式.Events绑定支持将ViewModel的方法绑定到DOM元素的事件处理(如鼠标事 ...
- Kendo UI开发教程(22): Kendo MVVM 数据绑定(十一) Value
Value绑定可以把ViewModel的某个属性绑定到DOM元素或某个UI组件的Value属性.当用户修改DOM元素或UI组件的值时,绑定的ViewModel的值也随之发生改名.同样,如果ViewMo ...
- Kendo UI开发教程(6): Kendo DataSource 概述
Kendo 的数据源支持本地数据源(JavaScript 对象数组),或者远程数据源(XML, JSON, JSONP),支持CRUD操作(创建,读取,更新和删除操作),并支持排序,分页,过滤,分组和 ...
- Kendo UI开发教程(7): Kendo UI 模板概述
Kendo UI 框架提供了一个易用,高性能的JavaScript模板引擎.通过模板可以创建一个HTML片段然后可以和JavaScript数据合并成最终的HTML元素. Kendo 模板侧重于UI显示 ...
- Kendo UI开发教程(8): Kendo UI 特效概述
Kendo UI Fx 提供了一个丰富,可扩展,性能经过优化的工具集合用来完成HTML元素的过渡显示.每种特效近可能的使用CSS Transition ,对于一些老版本浏览器使用修改属性的方法作为补充 ...
- Kendo UI开发教程(21): Kendo MVVM 数据绑定(十) Source
Source绑定可以把ViewModel的值和由Kendo模板定义的目标元素绑定,如果ViewModel的值发生变化,被绑定的目标元素也随之发生变化.模板由属性data-template指定,它的值为 ...
- Kendo UI开发教程(20): Kendo MVVM 数据绑定(九) Text
Text绑定可以使用ViewModel来设置DOM元素的文本属性,如果需要设置input,textarea,或select的显示,需要使用value属性. 1 <span data-bind=& ...
- Kendo UI开发教程(14): Kendo MVVM 数据绑定(三) Click
Click绑定可以把由ViewModel定义的方法不绑定到目标DOM的click事件.当点击目标DOM元素时触发ViewModel的对应方法.例如: 使用Click绑定 1 <div id=&q ...
- [置顶] Kendo UI开发教程: Kendo UI 示例及总结
前面基本介绍完Kendo UI开发的基本概念和开发步骤,Kendo UI的示例网站为http://demos.kendoui.com/ ,包含了三个部分 Web DemoMobile DemoData ...
随机推荐
- css2与css3的区别
css2与css3的区别 CSS3引进了一些新的元素新的特性,我收集以下,自己做了一个小结: animation(基础动画)eg: div{animation: myfirst 5s linear ...
- 当有多于64合乎逻辑的cpu时刻,Windows 下一个Oracle db 实例启动(startup)什么时候会hang(待定)
Bug 9772171 - Database startup hangs on Windows when machine has more than 64 cores [ID 9772171.8] 该 ...
- 使用C语言编写windows服务一般框架
原文:使用C语言编写windows服务一般框架 编写windows服务和编写windows应用程序一样,有一些回调函数必须填写且向windows 服务管理器(service manager)进行注册, ...
- :link,:visited,:focus,:hover,:active详解
原文::link,:visited,:focus,:hover,:active详解 CSS 又名 层叠样式表,所谓层叠,就是后面的样式会覆盖前面的样式,所以在样式表中,各样式排列的顺序很有讲究. ...
- C# & WPF 随手小记之一 ——初探async await 实现多线程处理
嗯...我也是在园子待了不短时间的人了,一直以来汲取着园友的知识,感觉需要回馈什么. 于是以后有空我都会把一些小技巧小知识写下来,有时候可能会很短甚至很简单,但希望能帮到大家咯. 第一篇文章来说说as ...
- js 模拟QQ聊天窗口图片播放效果(带滚轮缩放)
页面效果如下: 完整代码如下: <!DOCTYPE html> <html> <head> <title>Test</title> < ...
- MEF简介及简单的Demo
MEF简介及简单的Demo 文章开始之前,首先简单介绍一下什么是MEF,MEF,全称Managed Extensibility Framework(托管可扩展框架).单从名字我们不难发现:MEF是专门 ...
- centos 4.4配置使用 and Nutch搜索引擎(第1期)_ Nutch简介及安装
centos 4.4配置使用 1.Nutch简介 Nutch是一个由Java实现的,开放源代码(open-source)的web搜索引擎.主要用于收集网页数据,然后对其进行分析,建立索引,以提供相应的 ...
- android中自定义shape
<shape> <!-- 实心 --> <solid android:color="#ff9d77"/> <!-- 渐变 --> & ...
- ETHREAD APC
ETHREAD APC <寒江独钓>内核学习笔记(4) 继续学习windows 中和线程有关系的数据结构: ETHREAD.KTHREAD.TEB 1. 相关阅读材料 <window ...