.net学习之表单验证validator

版权声明:本文为博主原创文章,转载请注明原文链接 https://blog.csdn.net/qq_36922927/article/details/84203539

 表单验证是很常见的,一般除了前端需要验证数据是否为空,还需要验证数据格式是否符合要求,一般使用正则表达式验证,当然,除了前端,后端一般也需要将数据进行验证,比如客户端(浏览器)将js等前端脚本禁用,点击提交,那么不符合规范的数据就会提交到后台,这回导致系统出现问题。

.net中提供了常用的validator

通用的属性是:

  1. CtrolToValidate:也就是指待验证的控件id,可以是TextBox,也可以是其他的一些控件
  2. ErrorMessage:也就是这个验证出现不符合验证需求时,需要显示的提示信息
  3. Display:可取值Static和Dynamic和None,一个是固定位置,另一个是动态位置(如果前面有空格,会移动到前面)另一个是无,也就是不显示
  4. ValidationGroup:验证组,其他控件也有,比如button,可以多个控件使用同一个ValidationGroup值,以组为单位进行验证,后面demo会用到
  5. Text属性:未通过验证时验证控件所在位置的显示数据,如果不指定就会显示errorMessage的内容
  6. SetFocusOnError:设置光标在验证不通过时,移动到该控件校验的内容所在位置

其余还有很多,不在此一一列举。

基本的校验控件

比如:

CompareValidator:

可以验证值的大小(比如数字大小),值的类型,比如时间格式(date),

特有属性:ControlToCompare,指的是“待比较”的控件id,比如在比较时间格式是否符合Date时,通常在TextBox中输入数据,先使用RequiredFieldValidator验证是否输入为空,然后再添加一个compareValidator验证data type是否为Date(由于compareValidator同时拥有属性ControlToCompare和ControlToValidate这两个属性,如果id都指向同一个输入时间的textbox的话,会抛异常,所以通常使用一个隐藏的textbox来暂存时间输入框中的值,ControlToCompare就指向这个隐藏的textbox即可达到验证时间格式的问题。

RangeValidator:

范围验证,比如输入的数据长度,比如数字大小是否在某一个区间,

特有属性也就是MaximumValue和MiniumValue,还有个是Type,表明这个Max和Min是来描述什么类型,或者是什么属性的范围,比如字符个数,还是数字大小

RegularExpressionValidator:

正则表达式验证,通过指定的正则表达式,来验证数据是否符合要求,.net自带的有电话格式验证,邮箱格式验证等等

特有属性就是:ValdationExpression,正则表达式串

ValidationSummary:

这个控件的作用就是将一个页面上的或者是一个group中的所有validator不通过的errorMessage集中显示的控件

demo:

使用一个简单demo将上面的几种控件基本都用到了

本demo思路,当用户点击按钮“save”时将表单提交到后端,触发表单验证

Error message 1.这个位置是使用了一个ValidationSummary控件,效果效果是这样的

如果都不输入(RequireFieldValidator):

日期格式输入异常(CompareValidator):

coverage输入非数字(RegularExpressionValidator):

分组验证(ValidationGroup)

如果使用的分组验证,那么表单的“save”按钮,需要添加属性ValidationGroup=“123”来触发组验证,否则即使在ValidationSummary指定了valiodationGroup属性,点击save,也不会显示相应组的messageError,ValidationSummary只会显示在同一个ValidationGroup的验证控件相关的error message

  <asp:Button ID="saveButton" runat="server" Text="Save" OnClick="saveButton_Click" ValidationGroup="123" />

将Name的textBoX的ValidationGroup属性设置为 “123”

ValidationSummary的ValidationGroup也设置为“123”

save按钮的ValidationGroup也设置为“123”

不输入name,然后点击save

测试:

输入name,不在save 按钮所在ValidationGroup的Validator不生效

猜你喜欢

转载自blog.csdn.net/qq_36922927/article/details/84203539