表单验证是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. php文件上传限制

    PHP默认的上传限定是最大2M,想上传超过此设定的文件,需要调整PHP.apache等的一些参数.下面,我们简要介绍一下PHP文件上传涉及到的一些参数: file_uploads :是否允许通过HTT ...

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

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

  3. Trie,HDU1875world puzzle

    附上代码 #include<iostream> #include<cstdio> #include<string> #include<cstring> ...

  4. OpenJudge / Poj 1928 The Peanuts C++

    链接地址:http://bailian.openjudge.cn/practice/1928 题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 Mr. Robinson and h ...

  5. Apache服务

    Apache服务的安装: Apache服务程序的软件包名称是:httpd 安装方法: rpm软件包安装.源码编译安装.yum安装 yum install httpd 安装完成后启动: revice h ...

  6. Sass:一种CSS预处理器语言

    http://sass-lang.com/ Sass是一种CSS预处理器语言,通过编程方式生成CSS代码.因为可编程,所以操控灵活性自由度高,方便实现一些直接编写CSS代码较困难的代码. 同时,因为S ...

  7. Memcache存储大数据的问题

    Memcached存储单个item最大数据是在1MB内,假设数据超过1M,存取set和get是都是返回false,并且引起性能的问题. 我们之前对排行榜的数据进行缓存,因为排行榜在我们全部sql se ...

  8. Demo学习: CellDraw

    CellDraw 学习TUniStringGrid,为什么有些设置在web模式下无效? case TUniBitBtn(Sender).Tag of : UniStringGrid1.ColWidth ...

  9. leetcode 解题 String to Integer (atoi)(C&python)

    //此题是easy题,比较简单,主要困难在考虑全输入的各种情况://1.开始的时候有空格等空白字符//2.开头有加减号//3.溢出(第一次写就是没有考虑到这个情况) //C代码int myAtoi(c ...

  10. PL/SQL — 变长数组

    PL/SQL变长数组是PL/SQL集合数据类型中的一种,其使用方法与PL/SQL嵌套表大同小异,唯一的区别则是变长数组的元素的最大个数是有限制的.也即是说变长数组的下标固定下限等于1,上限可以扩展.下 ...