在HTML5规范以前,客户端效验只能通过JavaScript来完成,HTML5改变了这种现状,HTML5为表单控件额外增加了一些输入效验属性。HTML5页面只要简单地设置这些效验属性即可完成客户端效验
使用效验属性执行效验
HTML5为表单控件新增了如下几个效验属性。
- required:该属性指定该表单控件必须填写。该属性的值必须是required或完全省略属性值
- pattern:该属性指定该表单控件的值必须符合指定的正则表达式。该属性的值必须是一个合法的正则表达式
- min、max、step:这3个属性只对数值类型、日期类型的
<input.../>
元素有效,这3个属性控制该表单控件的值必须在min~max之间,并符合step步长
1 |
|
调用checkValidity方法进行效验
- 如果表单对象调用checkVaildity()方法返回true,则表明该表单内的所有表单控件都有效。只要任意一个表单控件不能通过输入效验,表单对象的checkVaildity()方法就会返回false。
- 如果表单对象调用checkVaildity()方法返回true,则表明该表单控件可以通过输入效验;否则返回false。
1 | <form action="add1"> |
自定义错误提示
有些情况下,我们希望定制自己的错误信息,HTML5为表单控件新增的setCustromValidity()方法来实现,该方法接受一个字符串参数,该字符串将会作为用户“自定义”的错误提示。
1 |
|
关闭效验
在某些时候,如果希望暂时关闭HTML5对表单提供的输入效验,则可以通过如下两种方式来实现
<form.../>
元素增加novalidate属性,该属性的值要么是novalidate,要么省略属性值- 为type=“submit”的
<input.../>
或<button.../>
元素设置formnovalidate属性,该属性的值要么是novalidate,要么省略属性值
第一种方式将会直接关闭表单的输入效验功能,无论通过哪个按钮提交表单,该表单都不会执行输入效验;第二种方式则由指定的提交按钮来 关闭表单的 输入效验,只有当用户通过指定了formnovalidate属性的按钮提交表单时才会关闭 表单的输入效验