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 ...
随机推荐
- SQL Server调优系列基础篇(常用运算符总结)
原文:SQL Server调优系列基础篇(常用运算符总结) 前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握 ...
- 伺服驱动器UVW电机电源线相序错误
我们有必要先了解此讨论的前提:编码器初始安装相位正确.伺服驱动器将全然"採信"电机编码器的初始安装相位所表征的电机电角度相位,无需在伺服电机 的UVW动力线接线连接后进行额外 ...
- Oracle并行查询出错
1.错误描写叙述 ORA-12801: 并行查询服务器P007中发出错误信号 ORA-01722:无效数字 12801.00000 -"error signaled in parallel ...
- Model和Entity Framework
Model和Entity Framework 上一节:ASP.NET MVC 5 入门教程 (4) View和ViewBag 下一节:ASP.NET MVC5 + EF6 入门教程 (6) View中 ...
- 编程算法 - 二叉树的深度 代码(C)
二叉树的深度 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入一棵二叉树的根节点, 求该树的深度. 依次选择最深的左右子树, 然后递归加1. ...
- WimMaker 2.0 (2013.10) WIM制作工具
WimMaker 2.0 (2013.10) WIM制作工具 可用于制作PE启动内核的Wim文件 说明: 因本软件使用.NET2.0制作,故主要用于制作WIM映像不用于备份还原系统(虽可用,但不专业, ...
- 多线程下HashMap的死循环是如何产生的
前言 HashMap不是线程安全的,如果需要在多线程环境中使用Map,那么我们可以使用ConcurrentHashmap. 1.举例说明: package com.test; import java. ...
- C语言缓冲区清空
C语言中有几个基本输入函数: //获取字符系列 int fgetc(FILE *stream); int getc(FILE *stream); int getchar(void); //获取行系列 ...
- JS基础——事件绑定
上一篇博客JS事件对象中,老师问JS事件处理和VB中的事件处理有什么联系?先来解决一下这个问题.举个VB.net中事件处理的样例(JS敲久了,VB习惯的都不熟悉了,看来得常常回想了): 1.事件处理V ...
- Vs2010中水晶报表引用及打包
原文:Vs2010中水晶报表引用及打包 转自:http://yunhaifeiwu.iteye.com/blog/1172283 Vs2010中水晶报表引用 在sap官网中下载支持vs 2010中的水 ...