Kendo UI Validator 概述

Kendo UI Validator 支持了客戶端校驗的便捷方法,它基於 HTML 5 的表單校驗功能,支持很多內置的校驗規則,同時也提供了自定義規則的便捷方法。

HTML 5 表單校驗

HTML5 的一項重要功能是HTML 5 表單校驗屬性, 通過設置限制屬性為 HTML 輸入設置輸入類型,值域等,然後由瀏覽器來檢查輸入是否合法。 支持的幾種規則有:

  • 必填域
  • 正規表達式規則
  • 最大,最小值域
  • HTML 5 數據類型( 如 EMail, URL,數值等)
  • 為了使用這些規則,可以通過為HTML輸入添加對應的屬性的方法來設置。比如:

<input type="email" required>

如果瀏覽器支持 HTML5,則它會自動根據這些規則來檢查輸入的值是否符合規則,如果輸入數據無效,瀏覽器會顯示錯誤信息給用戶,也不會提交表單。HTML5 也支持了一些新添的 JavaScript 方法來實現手工校驗,比如 checkValidity()方法。

HTML 5 表單校驗存在的問題 HTML 5 表單校驗非常有用,但它也存在一些問題,比如:

一些舊版本瀏覽器不支持 HTML5. 某些支持 HTML5 的瀏覽器對 HTML 5 表單支持不完整。 由瀏覽器生成的錯誤信息很難為它們重新定義顯示風格。 Kendo UI Validator 就是為了解決上面的這些問題而實現的。

Kendo UI Validator 的基本配置

Kendo UI Validator 支持標準的 HTML5 表單校驗屬性,從而允許你正常使用 HTML 5 表單校驗屬性,從而可以在所有瀏覽器(IE7+)上使用這些屬性,比如:

<div id="myform">
<input type="text" name="firstName" required />
<input type="text" name="lastName" required />
<button id="save" type="button">Save</button>
</div>
然後,在頁面上添加 Kendo UI Validator,添加在 Script 部分,比如:
// Initialize the Kendo UI Validator on your "form" container
// (NOTE: Does NOT have to be a HTML form tag)
var validator = $("#myform").kendoValidator().data("kendoValidator"); // Validate the input when the Save button is clicked
$("#save").on("click", function() {
if (validator.validate()) {
// If the form is valid, the Validator will return true
save();
}
});

使用這樣的簡單配置,這些 HTML5 表單校驗在舊版本瀏覽器中也可以工作,並且 Web 應用可以完全控制錯誤信息的顯示和其顯示風格,當點擊「Save” 按鈕後,如果輸入不滿足輸入規則,Kendo UI Validator 顯示合適的錯誤信息, 每個 HTML 元素也可以通過 validatorMessage 定義一個自定義的錯誤信息,比如:

<input type="tel" pattern="\d{10}" validationMessage="Plase enter a ten digit phone number" />

預設支持的校驗規則

輸入項必填規則

<input type="text" name="firstName" required />

輸入必須符合指定的正規表達式

<input type="text" name="twitter" pattern="https?://(?:www\.)?twitter\.com/.+i" />

最大,最小值限制

<input type="number" name="age" min="1" max="42" />

輸入步驟和最大,最小值限制一同使用

<input type="number" name="age" min="1" max="100" step="2" /> 

輸入為有效的 URL

<input type="url" name="url" />

輸入為有效的 EMail

<input type="email" name="email" />

除此之外,Kendo UI Validator 也支持自定義的規則。

自定義規則

使用自定義規則時的注意事項:

  • 表單的每個元素都會執行自定義規則,因此如果表單中有多個輸入項,注意檢查輸入項的類型,然後再執行合適的校驗規則,比如:
custom: function (input) {
if (input.is("[name=firstName]")) {
return input.val() === "Test"
} else {
return true;
}
}
  • 如果自定義規則返回 true,那麼表示校驗成功。
  • 如果有多個自定義規則,那麼會按屬性執行這些自定義規則,在發生錯誤時停止後續校驗規則的執行,而是顯示錯誤信息。只有所有規則都通過才表示表單校驗成功。
  • 自定義錯誤信息必須和自定義規則匹配,如果沒有定義自定義錯誤信息,則顯示一個簡單的出錯圖標。

自定義輸入提示的位置

預設情況下 Kendo UI 將輸入提示顯示在輸入框附近,然而,如果輸入通過Kendo UI插件轉換為 ComboBox ,AutoComplete 或其它 Kendo UI 組件後,預設的輸入提示可能會影響到某些重要信息的顯示,這時,你可以指定在什麼地方顯示輸入提示,這時,可以通過添加一個 span 元素,定義  data-for 屬性到需要校驗的輸入框的 name, 並添加 .k-invalid-msg  類。

比如:

custom: function (input) {
if (input.is("[name=firstName]")) {
return input.val() === "Test"
} else {
return true;
}
}

Kendo UI Validator 概述的更多相关文章

  1. Kendo UI开发教程(9): Kendo UI Validator 概述

    Kendo UI Validator 支持了客户端校验的便捷方法,它基于HTML 5 的表单校验功能,支持很多内置的校验规则,同时也提供了自定义规则的便捷方法. 完整的Kendo UI 的Valida ...

  2. Kendo UI 特效概述

    Kendo UI 特效概述 Kendo UI Fx 提供了一个丰富,可扩展,性能经过优化的工具集合用来完成 HTML 元素的过渡显示.每种特效近可能的使用 CSS Transition ,对于一些老版 ...

  3. Kendo UI 模板概述

    Kendo UI 模板概述 Kendo UI 框架提供了一个易用,高性能的 JavaScript 模板引擎.通过模板可以创建一个 HTML 片段然后可以和 JavaScript 数据合并成最终的 HT ...

  4. Kendo UI Widgets 概述

    UI Widgets 概述 Kendo UI 是基于 jQuery 库开发的,Kendo UI widgets 是以 jQuery 插件形式提供的.这些插件的名称基本上都是以 kendo 作为前缀.比 ...

  5. Kendo UI开发教程(7): Kendo UI 模板概述

    Kendo UI 框架提供了一个易用,高性能的JavaScript模板引擎.通过模板可以创建一个HTML片段然后可以和JavaScript数据合并成最终的HTML元素. Kendo 模板侧重于UI显示 ...

  6. Kendo UI开发教程(8): Kendo UI 特效概述

    Kendo UI Fx 提供了一个丰富,可扩展,性能经过优化的工具集合用来完成HTML元素的过渡显示.每种特效近可能的使用CSS Transition ,对于一些老版本浏览器使用修改属性的方法作为补充 ...

  7. [置顶] Kendo UI开发教程: Kendo UI 示例及总结

    前面基本介绍完Kendo UI开发的基本概念和开发步骤,Kendo UI的示例网站为http://demos.kendoui.com/ ,包含了三个部分 Web DemoMobile DemoData ...

  8. Kendo UI开发教程(6): Kendo DataSource 概述

    Kendo 的数据源支持本地数据源(JavaScript 对象数组),或者远程数据源(XML, JSON, JSONP),支持CRUD操作(创建,读取,更新和删除操作),并支持排序,分页,过滤,分组和 ...

  9. Web UI开发速速种草—Kendo UI for jQuery网格编辑操作概述

    Kendo UI for jQuery最新试用版下载 Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support f ...

随机推荐

  1. PC lint -sem 用法示例

    -sem(std::auto_ptr::auto_ptr,custodial(1)) // the auto_ptr class type // handles custody automagical ...

  2. Modbus通讯协议学习 - 认识篇

    转自:http://www.cnblogs.com/luomingui/archive/2013/06/14/Modbus.html 什么是Modbus? Modbus 协议是应用于电子控制器上的一种 ...

  3. 南阳oj水题集合,语言的灵活运用

    a+b 输入 输入两个数,a,b 输出 输出a+b的值 样例输入 2 3 样例输出 5 c/c++ #include<iostream> using namespace std; int ...

  4. go 时间戳和时间格式的相互转换

    package main import( "fmt" "time" ) func main() { datetime := "2015-01-01 0 ...

  5. Python之将Python字符串生成PDF

      笔者在今天的工作中,遇到了一个需求,那就是如何将Python字符串生成PDF.比如,需要把Python字符串'这是测试文件'生成为PDF, 该PDF中含有文字'这是测试文件'.   经过一番检索, ...

  6. [sdut] 1400 马的走法 dfs

    Problem Description 在一个4*5的棋盘上,马的初始位置坐标(纵 横)位置由键盘输入,求马能返回初始位置的所有不同走法的总数(马走过的位置不能重复,马走“日”字).如果马的初始位置坐 ...

  7. C++ com

    http://www.cnblogs.com/hlxs/p/3783920.html 昨天看了<COM本质论>的第一章"COM是一个更好的C++",觉得很有必要做一些笔 ...

  8. SAP中对于获取订单的状态

    在SAP中对于如何获取订单的状态,提供了至少两个函数,分别是 STATUS_READ 和   STATUS_TEXT_EDIT.下面简单介绍这两个函数 1.STATUS_READ  改函数的实现原理大 ...

  9. python 之 函数 生成器

    5.10 生成器 函数内有yield关键字,再调用函数就不会立刻执行函数体代码,会得到一个返回值,该返回值就是生成器,生成器本质就是迭代器 def chicken():    print('===== ...

  10. pycharm安装教程,汉化教程,以及正版激活码---

    密钥在下面 安装过程 PyCharm2019本地下载: http://www.100c1.com/upload/default/20190420/1c08a3209029093a8b34df941f1 ...