表单验证是Web开发中必不可少的一个环节,用来限制用户输入数据的规范和一致性。那么如何能够简化这一任务,让开发人员通过简单的属性设置就能达到目的呢?

FineUI在这一点上也是下足了功夫,比Asp.Net原生的CompareValidator、RangeValidator、RequiredFieldValidator等控件好用多了,眼见为实,下面就来详细介绍如何在FineUI进行表单验证。

如何验证表单?

可以通过如下两步来完成表单的验证。

  1. 为每个表单控件设置验证属性。

比如为TextBox设置Required=”true”和ShowRedStar=”true”两个属性,表示此输入为必填项,并且在标签的后面显示一个红色的星号提示。详细内容会在下一节讲解。

  1. 通过按钮属性设置需要验证的表单。

ValidateForms:需要验证的表单名称列表(逗号分隔),可以指定点击按钮时同时验证多个表单。

ValidateTarget:验证失败时提示对话框弹出位置,可以是Target.Self、Target.Parent、Target.Top。在框架页面中,你可能希望弹出的提示信息能够覆盖整个页面,而不仅仅是IFrame的部分页面。

除此之外,还有一些属性用来控制表单验证的行为,分为三个级别的控制:

  1. Web.config级别的控制

分别有FormMessageTarget、FormOffsetRight、FormLabelWidth、FormLabelSeparator几个参数来设置,在《FineUI秘密花园(三) — 深入Web.config》已有详细描述。

  1. PageManager级别的控制

同样是这四个属性,在《FineUI秘密花园(四) — 每个页面需要一个PageManager》一文中也有详细的描述。

  1. Form、SimpleForm表单级别的控制

可以通过LabelWidth和LabelSeparator两个属性进行控制。

表单控件与验证相关的通用属性

所谓的通用属性指的是DropDownList、DatePicker、NumberBox、TextArea、TextBox等表单控件都有的验证属性,可以分为以下几类:

  1. 是否为必填项

Required(布尔):是否为必填项

RequiredMessage(字符串):为空时提示信息

  1. 正则表达式

Regex(字符串):必须满足的正则表达式

RegexMessage(字符串):不满足正则表达式时提示信息

RegexPattern(枚举):正则表达式常用类型

RegexPattern.NUMBER:数字

RegexPattern.ALPHA:大写和小写字母

RegexPattern.ALPHA_NUMERIC:字母和数字

RegexPattern.ALPHA_UNDERLINE:字母和下划线

RegexPattern.ALPHA_NUMERIC_UNDERLINE:字母数字和下划线

RegexPattern.ALPHA_LOWER_CASE:小写字母

RegexPattern.ALPHA_UPPER_CASE:大写字母

RegexPattern.EMAIL:电子邮箱

RegexPattern.URL:网址

RegexPattern.POSTAL_CODE:邮政编码

RegexPattern.IP_ADDRESS:IP地址

RegexPattern.IDENTITY_CARD:身份证号(不错吧,还有国内的18位身份证号)

其中RegexPattern非常有用,内置了很多我们经常用到的正则表达式。

  1. 长度限制

MaxLength(整数):最大长度

MaxLengthMessage(字符串):超过最大长度时提示信息

MinLength(整数):最小长度

MinLengthMessage(字符串):少于最小长度时提示信息

  1. 比较(包括与控件值比较、与常量比较)

CompareControl(字符串):需要比较的控件ID

CompareValue(字符串):需要比较的值

CompareOperator(枚举):比较操作符

Operator.Equal(默认值)

Operator.GreaterThan

Operator.GreaterThanEqual

Operator.LessThan

Operator.LessThanEqual

Operator.NotEqual

CompareType(枚举):比较的类型

CompareType.Float

CompareType.Int

CompareType.String(默认值)

CompareMessage(字符串):不满足比较条件时提示信息

其中,CompareType有时会起到关键的作用,比如在比较两个数字输入框的值时,如果不设置CompareType,则输入值“3”会大于“10”。

表单控件特有的限制属性

有一些控件拥有自己特有的限制属性,下面会列举出来。

  1. 日期选择控件(DatePicker)

MinDate(日期):最小日期限制

MaxDate(日期):最大日期限制

  1. 数字输入框(NumberBox)

MinValue(浮点数):最小值

MaxValue(浮点数):最大值

NoNegative(布尔):不允许负数

NoDecimal(布尔):不允许小数

DecimalPrecision(整数):小数点后的位数(默认为2)

客户端验证示例

1. 同时验证多个表单

这个非常简单,只需要在ValidateForms中指定要验证表单的ID即可(逗号分隔)。

Web开发-表单验证的更多相关文章

  1. HTML5 web Form表单验证实例

    HTML5 web Form 的开发实例! index.html <!DOCTYPE html> <html> <head> <meta charset=&q ...

  2. Java web 之表单验证

    按照软件工程师的定位来讲,表单验证应该要好好练习的 html  javascript

  3. Web前端表单验证

    表单选择器 :input(匹配所有input.textarea.select和button元素)   :text(匹配所有单行文本框)   :password(匹配所有密码框)   :radio(匹配 ...

  4. SPA项目开发--表单验证、增删改

    1. 表单验证 Form组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,   并将Form-Item的prop属性设置为需校验的字段名即可      <el-form- ...

  5. Day17 表单验证、滚动菜单、WEB框架

    一.表单验证的两种实现方式 1.DOM绑定 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  6. web框架-(六)Django补充---form表单验证

    一.form表单验证 1. 常规html页面的form表单验证 常规页面中,如果想实现对表单中用户输入信息的数据验证,需要配合Ajax来实现. 使用前我们先来熟悉下函数参数:request,其中包含的 ...

  7. 再说表单验证,在Web Api中使用ModelState进行接口参数验证

    写在前面 上篇文章中说到了表单验证的问题,然后尝试了一下用扩展方法实现链式编程,评论区大家讨论的非常激烈也推荐了一些很强大的验证插件.其中一位园友提到了说可以使用MVC的ModelState,因为之前 ...

  8. 配置web.xml和glassfish容器实现javaEE表单验证

    web.xml配置: <!-- 声明用于安全约束的角色 --> <security-role> <role-name>ReimUser</role-name& ...

  9. HTML5 Web Form 新增属性和表单验证

    <form>标签的基本属性 method属性:指定浏览器向服务器传送数据的方式,可选: action属性:设置服务器接受和处理表单数据的URL: enctype属性:制定表单数据在发送到服 ...

随机推荐

  1. akka创建actor时报错:IllegalArgumentException: no matching constructor found on class $iwC$$iwC$$iwC$$iwC$

    在spark-shell中输入范例中的代码: import akka.actor.Actor import akka.actor.Props import akka.event.Logging cla ...

  2. C# lazy加载

    转自http://www.cnblogs.com/yunfeifei/p/3907726.html 在.NET4.0中,可以使用Lazy<T> 来实现对象的延迟初始化,从而优化系统的性能. ...

  3. 利用sys.dm_db_index_physical_stats查看索引碎片等数据(转)

    我们都知道,提高sql server的数据查询速度,最有效的方法,就是为表创建索引,而索引在对数据进行新增,删除,修改的时候,会产生索引碎片,索引碎片多了,就需要重新组织或重新生成索引,以达到索引的最 ...

  4. UITableViewCell和UITableViewHeaderFooterView的重用

    不管是系统自带的还是自定义的UITableViewCell,对于它们合理的使用都是决定一个UITableView的性能的关键因素.应该确保以下三条: UITableViewCell的重复利用:首先对象 ...

  5. XCode实用好用插件集锦

    工欲善其事,必先利其器,iOS开发运用插件可以大大提高开发的效率. 原文地址: http://www.oschina.net/project/tag/432/xcode-plugins

  6. 适配----Autolayout

    AutLayout 相对布局,根据参照视图的位置 来定义自己的位置.通过约束视图和视图之间的关系来分配屏幕上的位置,通常与VFL语言配合使用 VFL(visual format language)视觉 ...

  7. Linq JsRender

    http://blog.csdn.net/linfei721/article/details/8973683

  8. 02两栈共享空间_DoubleStack--(栈与队列)

    #include "stdio.h" #include "stdlib.h" #include "io.h" #include " ...

  9. PHPStrom 使用技巧以及基本设置教程【更新完结】

    本博文由北京乐学一百在线教育科技有限公司平台开发组成员提供,在此表示感谢,截图来源于Tower,热力推荐的一款不错的办公工具. 1.SVN链接上的条件下,修改子文件,父文件夹以及祖辈文件夹变色设置:​ ...

  10. 学习S5

                  rztyfx的专栏       目录视图 摘要视图 订阅 [专家问答]阿里陈康贤:探讨大型网站之架构    走进VR开发世界——我们离开发一款VR大作还有多远?     C ...