HTML5表单客户端验证的例子

过去对于客户端的表单验证,通常是使用JavaScript验证脚本,要么自己写,要么使用第三方库。而在HTML5中,提供了一套客户端验证方法,只需要在<input>字段里嵌入常用的错误检查规则即可。

1,required属性 - 表示字段不能为空

(注意:只有用户单击“提交”按钮提交表单的时候,浏览器才会执行验证。目前HTML5不支持指定验证的时间,而且验证消息的样式和内容各个浏览器不大一样,不能修改。)

 

<form action="#">
  <input type="text" required/> 
  <input type="submit" value="提交">
</form>

2,关闭验证的两种方式

(1)在<form>元素中添加novalidate属性,禁用整个表单的验证功能

<form action="#" novalidate>

(2)或给提交按钮添加formnovalidate属性

<input type="submit" value="提交" formnovalidate>

3,修改文本框验证样式
虽然我们无法修改验证消息的样式,但却可以根据输入字段时候需要验证,已经验证结果来改变它们的外观。
这里使用了几个新的CSS伪类:
required(必填)和optional(选填):根据字段中是否使用required属性来应用不同的样式。
valid(有效)和invalid(无效):根据控件中是否包含错误来应用不同的样式。
in-range(在范围内)和out-of-range(超出范围):根据控件的min和max属性判断输入值是否超出范围。

比如:想让必填的<input>元素应用浅黄色背景,而必填且当前输入无效值的字段用橙色背景。

input:required {
    background-color:lightyellow;
}
    
input:required:invalid {
    background-color:orange;
}

4,pattern属性 - 使用正则表达式验证
(1)不必使用^和$字符表示要匹配字段值得开头和结尾。
(2)只设置pattern的话,空值也会通过。如果不允许空,则还要加上required属性。

比如:使用正则表达式验证手机号码

 

<input type="text" title="输入11位有效的手机号" pattern="1[0-9]{10}" required/>

5,自定义验证

对于特定字段如果正则表达式验证还无法满足需求的话,可以编写自定义的验证逻辑,并利用HTML5的验证机制。
通常使用setCustomValidity()方法提供错误消息,浏览器会将该消息当做自己的内置消息。在提交表单时,就会看到弹出的提示框中包含自定义的错误消息。

比如:验证输入内容不得少于20个字符

<script>
    function validateComments(input) {
        if(input.value.length < 20){
            input.setCustomValidity("评论不得少于20字");
        }else{
            //没有错误。清除任何错误消息
            input.setCustomValidity("");
        }
    }
</script>
 
<form action="#">
    <input type="text" oninput="validateComments(this)"/>   
    <input type="submit" value="提交">
</form>

 

时间: 2024-08-29 08:23:54

HTML5表单客户端验证的例子的相关文章

js实现表单及时验证功能 用户信息立即验证_javascript技巧

问题:表单怎么在输入后立即验证,而不是提交后再验证那么不方便(网上搜到的要么是模棱两可,要么是残缺不全-) 方法:鉴于此,小可,水山奇,将其代码补全,加上小可我个人的理解(注释)在上面,仅供后来者少走弯路,也请各路好汉批评指正-(转发请注作者,xiexie)----table表格版,以后会继续有JQuery版- 如果帮助到您,顶一下 ヾ(≧O≦)"嗷~ 截图: 代码: <!DOCTYPE html> <html> <head> <meta http-eq

js浏览器html5表单验证_javascript技巧

html5表单添加了很多类型的表单,而且还自带验证的功能.在移动端,手机等设备能够根据不同的input类型弹出不同的键盘,例如iphone弹的键盘 但是由于不同的浏览器对不合法输入提示文案不一致,样式也不一样,并且老的浏览器不兼容(IE9及以下),导致了在生产环境中比较少见到.例如对于邮箱格式的检验,不同浏览器的效果如下: Chrome Firefox IE safari html5的表单跨浏览器有很大的问题 具体来说存在三个问题: (1) 输入框blur的时候不会触发检查,只有在点提交时才触发

jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码_jquery

本文实例讲述了jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码.分享给大家供大家参考.具体如下: 这里实现圆角表单,圆角输入框,无刷新验证,漂亮唯美,是对这款基于HTML5/CSS3/jQuery来实现的表单效果的简要概括,用HTML5可以实现很多超乎寻常的效果,从此你会喜欢上HTML5,会骂一下万恶的IE,到现在IE8还不支持HTML5,正悲哀着呢. 先来看看运行效果截图: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-htm

转帖:客户端表单通用验证checkForm(oForm) js版

 *--------------- 客户端表单通用验证checkForm(oForm) -----------------  * 本程序最初是由wanghr100(灰豆宝宝.net)的checkForm基础上进行修改的,增加了很多功能,如下:  * 1.对非ie的支持  * 2.增加了内置表达式和内置提示  *  3.增加了显示方式(弹出式和页面显示式)  * 4.增加了显示一条和显示全部  * 5.进行了封装(CLASS_CHECK)  * 6.支持外接函数或表达式(应用在密码一致)  * 7

在ASP.NET中如何用C#.NET实现基于表单的验证(二)

asp.net (五)创建Logon.aspx页面1.在已创建好的项目里创建一个新的Web 窗体,名为Logon.aspx.2.在编辑器里打开Logon.aspx,切换到HTML视图.3.复制下面代码,然后在编辑菜单里"选择粘贴为HTML"选项,插入到<form>标签之间.    1<h3> 2   <font face="Verdana">Logon Page</font> 3</h3> 4<tab

PHP入门教程之表单与验证实例详解_php技巧

本文实例讲述了PHP表单与验证.分享给大家供大家参考,具体如下: Demo1.php <?php ob_start(); //重新导向一个 URL //header() //header('Location:Demo2.php'); //上面这句话可以自动跳转到你所想要的页面. //header('Location:http://www.baidu.com'); //上面这句话自动跳转到百度上面去. echo 'baidu.com'; header('Location:http://www.ba

在ASP.NET中如何用C#.NET实现基于表单的验证

这篇文章引用到了Microsoft.NET类库中的以下名空间:System.Data.SqlClientSystem.Web.Security -------------------------------任务:摘要: 1.要求2.用VisualC#.NET创建一个ASP.NET应用程序3.在Web.config文件里配置安全设置4.创建一个数据库表样例来存放用户资料5.创建Logon.aspx页面6.编写事件处理代码来验证用户身份7.创建一个Default.aspx页面8.附加提示 参考文章-

Yii框架表单提交验证功能分析

本文实例讲述了Yii框架表单提交验证功能.分享给大家供大家参考,具体如下: 一.前端提交的三种方式 前面已经提出,表单提交一共只有三种方式. 1. 前端原生html (1)原生html标签 首先,直接使用html标签的input,a等: 其次,使用css进行布局. 再次,使用js或jquery方式验证 最后,提交(get/post/ajax,目前较多使用jquery提交). 注:该种方式由于较灵活,使用最多. (2)原生form js或jquery方式验证,yii方式提交. 相对灵活 <form

渲染HTML5表单界面:CSS3 appearance

网页制作Webjx文章简介:CSS3 appearance简介. 我们来简单了解一下上文中提到的css appearance.在之前研究HTML5表单的时候,一直很好奇浏览器是通过什么渲染不同的表单界面的,后来在Chrome中查看类型为range的input的时候,发现了这个有趣的属性: 然后右边的样式显示是这样的: 后来就发现CSS3规范中对appearance有定义,MDC也有对这个属性的描述. 这真是个非常有趣的属性,可以用来伪装或是实现一些特殊的界面,比如将input[type=text