HTML5中修改表单验证默认提示语句

HTML5中针对表单新增的验证属性如required、pattern以及一些特定input类型,当验证不通过时,都有默认的提示语句,但实践中发现并不怎么友好,因此,需要自定义提示语句,使用setCustomValidity()。在此之前,需要介绍一下表单的validityState对象。
HTML5表单新增的属性中有一个validity属性,通过该属性可以获得一个validityState的对象,而validityState对象针对表单的几个错误验证又提供了8个属性:

  • valueMissing
    必填项为空,返回true,否则返回false,配合required属性使用
  • typeMismatch
    判断输入类型是否匹配,不匹配返回true,否则返回false,配合email、number、url等类型使用
  • patternMismatch
    判断正则是否通过,没通过返回true,通过返回false,配合pattern属性使用
  • toolong
    判断当前元素的值的长度是否大最大值,大于返回true,否则返回false,配合maxlength使用,但实际上如果设置maxlength,就无法输入超出长度范围的值
  • rangeUnderflow
    判断当前元素值是否小于min,与min属性配合,不与max比较
  • rangeOverflow
    判断当前元素值是否大于max,与max属性配合,不与min比较
  • stepMismatch
    判断当前元素值是否符合step要求,与step属性配合
  • customError
    使用自定义的验证错误提示信息,配合setCustomValidity()方法使用;
    如果使用了setCustomValidity()方法,customError属性返回true,那么当输入正确时,不能使用上述的任何一种属性验证输入是否正确,所有的验证都返回false,表单的验证逻辑将会出现bug。因此,在自定义错误提示信息时,需要首先使用input.value判断输入是否为空,如果不是空值,调用input.setCustomValidity(“”)将提示信息设为空,从而屏蔽输入正确时出现的验证逻辑错误,之后再设置自定义错误提示语,示例:
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8"/>
  <title> New Document </title>
</head> 
<body>
    <form>
        <input id="user" type="text" required pattern="^[a-zA-Z0-9]{6,12}$" placeholder="请输入用户名"/>
        <input type="submit" value="提交">
    </form>
</body>
<script>
var user=document.getElementById("user");
    user.onblur=function(){
        if(user.value){
            user.setCustomValidity("");//现将有输入时的提示设置为空
        }else if(user.validity.valueMissing){
            user.setCustomValidity("用户名不能为空");  
        };
        if(user.validity.patternMismatch){ 
            user.setCustomValidity("用户名只能是英文或数字,长度6到12位");
        }
    };
</script>
</html>

没有输入时:
这里写图片描述

输入不符合要求时:
这里写图片描述

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
目录: 目录 第1篇 html基础入门篇 第1章 建立首要的、基础的正确认知 1.1 internet和万维网 1.1.1 什么是www(万维网) 1.1.2 w3c是什么 1.2 网页、浏览器、网站和网络服务器 1.2.1 网页和浏览器 1.2.2 不可不知的浏览器发展史 1.2.3 浏览网页 1.2.4 网站和网络服务器 1.3 了解html语言 1.3.1 关于html和html编辑器 1.3.2 创建第一个网页 1.3.3 查看网页的源文件 1.4 html 4.0的特点 1.4.1 国际化 1.4.2 可访问性 1.4.3 表格 1.4.4 混合文档 1.4.5 样式表 . 1.4.6 脚本 1.4.7 打印 1.5 巩固与自测 第2章 html文档的基本结构 2.1 使用dreamweaver创建第一个网页 2.1.1 dreamweaver安装和配置向导 2.1.2 使用dreamweaver创建网页的基本步骤 2.1.3 使用dreamweaver的基本知识 2.2 html文档的基本结构 2.2.1 了解sgml和html的关系 2.2.2 html简要的历史和为何要使用html 2.2.3 html 4.01的版本和文档类型声明 2.2.4 [html][/html]标签对和属性 2.2.5 [head][/head]标签对 2.2.6 [body][/body]标签对 2.3 巩固与自测 第3章 html文档的编写规范 3.1 使用标签、元素和属性 3.1.1 标签 3.1.2 元素 3.1.3 属性的定义 3.1.4 属性值的定义 3.1.5 元素和属性的大小写规范 3.2 字符引用 3.2.1 字符数字引用 3.2.2 字符实体引用 3.3 使用注释 3.4 关于空白和空白字符 3.4.1 关于断行符 3.4.2 空白字符 3.5 基本html数据型式 3.5.1 cdata数据类型 3.5.2 id和name使用的数据类型 3.5.3 idref和idrefs使用的数据类型 3.5.4 number数据类型 3.5.5 文本字符串 3.5.6 使用uri 3.5.7 使用颜色 3.5.8 使用长度 3.5.9 内容类型(mime类型) 3.5.10 语言代码 3.5.11 字符编码 3.5.12 单字符 3.5.13 日期和时间 3.5.14 链接类型 3.5.15 介质描述符 3.5.16 脚本数据 3.5.17 样式表数据 3.5.18 框架目标名 3.6 巩固与自测 第2篇 html详细学习篇 第4章 html文档的头部定义 4.1 定义标题(title元素) 4.2 怎样定义元数据 4.2.1 定义元数据关键字 4.2.2 元数据的语言信息 4.2.3 元数据的其他定义方法 4.3 用于搜索引擎的元数据 4.3.1 定义编辑工具 4.3.2 定义版权信息 4.3.3 定义关键字 4.3.4 定义概要描述 4.3.5 定义设计者 4.3.6 定义创作日期 4.3.7 定义搜索引擎搜索方式 4.4 用于http消息报头的元数据(属性http-equiv) 4.4.1 设置网页内容类型和字符集 4.4.2 设置网页所使用的语言 4.4.3 设置网页定时跳转 4.4.4 设置网页禁用缓存 4.4.5 设置网页到期 4.4.6 设置网页cookie存活时间 4.4.7 设置网页框架目标 4.4.8 设置网页转场效果 4.4.9 设置网页分级 4.5 元数据纲要和元数据架构 4.5.1 使用元数据纲要(profile属性) 4.5.2 使用元数据架构(scheme属性) 4.6 巩固与自测 第5章 文字与段落 5.1 结构化的文本 5.1.1 用于强调的短语元素(em元素、strong元素、cite元素) 5.1.2 用于缩写的短语元素(abbr元素、acronym元素) 5.1.3 其他的短语元素(dfn、code、samp、kbd、var) 5.1.4 引用(blockquote元素、q元素) 5.1.5 下标和上标(sub元素、sup元素) 5.2 行和段落 5.2.1 段落(p元素) 5.2.2 控制换行(br元素) 5.2.3 连字符 5.2.4 预格式化文本(pre元素) 5.2.5 段落的视觉呈现 5.3 标题字体(h#元素) 5.4 标记文档改变:ins和del元素 5.5 基本文字格式(tt、i、b、big、small、strike、s、u) 5.6 字体修改(font、basefont元素) 5.6.1 改变字体大小(size属性) 5.6.2 改变文本颜色(color属性) 5.6.3 改变字体(face属性) 5.7 加入水平分割线(hr元素) 5.7.1 分隔线宽度和高度

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值