• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > 详解HTML5的限制验证

详解HTML5的限制验证

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含HTML5,限制验证等相关知识,匿名希望在学习及工作中可以帮助到您
  如果没有可以与用户进行连接,并且保存所需数据的表单,互动式网站和程序就无从谈起。不错,我们的确需要有效的用户输入,但是我们要用一种不会让用户感到厌烦的方式来获取它。

  尽管我们可以使用良好的UX设计来提高表单的可用性,但是HTML5也为我们提供了一个原生的机制来进行限制验证,它可以允许我们在前端就察觉到输入中的错误。

  在这篇文章中,我们将会专注于浏览器所提供的限制验证,并且讨论一下前端开发者们如何使用HTML5来获得有效的用户输入。

  为何需要前端输入验证

  使用输入验证,主要有两个目的。我们所要的内容,需要:

  1. 实用

  我们需要的是可用数据。我们需要用户在正确的表单中提交切实可行的数据。例如,今天不可能有200年前出生的人还活着。刚一开始获得这样的数据,你可能会觉得很有意思。但是一段时间之后,这样的无效数据会让你觉得厌烦,数据库也会被大量无效数据所充斥。

  2. 安全

  这里所说的安全性,就是要防止恶意内容的注入——无论是用户的故意行为还是无意行为。

  数据的实用性(获得合理的数据),这一点只能靠用户的自觉,后端团队无法为你提供太多帮助。然而,保证数据的安全性,这一点需要前端团队和后端团队紧密协作。

  如果前端开发者可以妥善的验证用户输入的数据,那后端团队所面临的共计就会少很多。黑客在攻击站点的时候,最常用的方法之一,就是提交额外的数据,或是以错误的格式提交数据。开发者完全可以封堵这样的安全漏洞,而且是在前端就可以完成。

  在前端输入验证中,我们的工作就是给用户所输入的数据添加合理的限制条件。HTML5的限制验证功能就给我们提供了这样的工具。

  HTML5限制验证

  在HTML5出现以前,前端开发者只能使用JavaScript来验证用户输入的内容,但是这个过程对于开发者来说却是痛苦不堪,经常会出现各种错误。为了完善用户端的表单验证,HTML5推出了一个限制验证算法,它可以运行在现代浏览器中,对用户提交的数据进行有效性检查。

  在对数据进行评估的时候,这个算法使用了输入元素的与验证相关的属性,例如<input>、<textarea>和<select>。

  多亏了HTML5的限制验证功能,在进行用户数据提交验证的时候,我们终于可以摆脱JavaScript了。

  要想进行更复杂的验证相关任务,HTML5为我们提供了一个限制验证JavaScript API,我们可以使用这个API来制作个性化验证脚本。

  使用语义Input类型进行验证

  HTML5推出了一种语义input类型,它可以被用来验证用户的输入,方法是将用户限制在某个特定的输入表单上。

  除了以前的input类型之外(例如text, password, submit, reset, radio, checkbox, button, hidden),HTML5还添加了新的语义input类型:

  email,

  tel,

  url,

  number,

  time,

  date,

  datetime,

  datetime-local, month,

  week, range, search,

  color.

  现在我们来看一下如果一个用户输入了错误的数据类型会发生什么。加入我们已经创建了一个电子邮件输入框,代码如下:

<form name="form" action="#" method="post">

   <label for="youremail">Your Email:</label>

   <input type="email" name="email" id="youremail">

   <input type="submit" value="Submit">

 </form>

  如果用户输入了一串不符合电子邮件格式的字符串,限制验证算法就会阻止表单的提交,并且返回一个错误提示:

  这个规则也适用于其他的input类型,例如如果你使用了type=“url”,用户将智能提交URL格式的字符串(以协议开头,例如http://或是ftp://)。

  还有一些input类型使用了特殊的设计,它们甚至不允许用户输入错误的输入格式,例如color和range。

 <form name="form" action="#" method="post">

  <label for="bgcol">Background Color:</label>

  <input type="color" name="color" id="bgcol">

  <input type="submit" value="Submit">

</form>

  如果使用了color这个input类型,用户只能在颜色选择器中选择颜色,或者使用默认的黑色。由于这个输入框在最初设计时就添加了严格的限制,因此用户基本不可能输入错误数据。

  在合适的时候,你也可以考虑使用HTML的<select>标签,它的作用与上面那个input类型相似;它会让用户在下拉菜单中进行选择。

<form name="form" action="#" method="post">

  <label for="favfruit">Your Favourite Fruit:</label>

  <select name="fruit" id="favfruit">

    <option value="apple">Apple</option>

    <option value="pear">Pear</option>

    <option value="orange">Orange</option>

    <option value="raspberry">Raspberry</option>

  </select>

  <input type="submit" value="Submit">

</form>

  使用HTML的验证属性

  使用语义input类型,可以限制用户所提交的数据类型,但是在很多时候,这样还不够。在这个时候,<input>标签的验证相关属性可以为我们提供帮助。

  验证相关属性应用于某些特定的input类型(并非所有类型都可以使用),这些属性可以设定更加严格的限制。

  1. 强制用户必须提交有效数据:

  required是HTML中最广为人知的验证属性。它是一种布尔值属性,也就是说,它不需要包含任何值,在需要的时候,我们只需要把它放我们只需要把它放在<input>标签里就好了。

  <input type="email" name="email" id="youremail" required>

  当我们给一个输入框赋予required属性之后,如果用户遗漏了这个输入框,浏览器会返回一个提示信息,提醒用户在该输入框内输入有效数据,否则表单无法成功提交。因此,在使用了required属性之后,我们需要给该输入框配上醒目的提示符号。

  required属性可以与下列input类型搭配使用:text, search, url, tel, email, password, date, datetime, datetime-local, month, week,

time, number, checkbox, radio, file。还有<textarea>和<select>这两个HTML标签。 

  要注意的是,maxlength这个属性无法返回错误提示,但是当用户输入的长度超过限制的时候,浏览器会阻止用户继续输入。因此,在使用它的时候,你一定要用醒目的文字向用户提示输入长度限制,以免用户不知道自己为何无法继续输入。

2. min, max和step:数字验证

min, max和step让我们可以对数字输入框添加限制。它们可以与range, number, date, month, week, datetime, datetime-local和time这些input类型搭配使用。

min和max属性让我们可以轻松的排除那些不合理的数据。例如下面的这段代码,这是用于年龄验证的一段代码:

 <form name="form" action="#" method="post">

  <label for="yourage">Your Age:</label>

  <input type="number" name=&
  


 

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2017-08-06HTML5 video 视频标签使用介绍
  • 2018-12-03基于canvas的纯JS二维码生成插件
  • 2018-12-03为什么舰娘这个游戏不用html5技术而选用老掉牙的Flash?
  • 2018-12-03静态资源(JS/CSS)存储在localStorage有什么缺点?为什么没有被广泛应用?
  • 2018-12-03HTML5与Flash比较的详细介绍
  • 2017-08-06html5中valid、invalid、required的定义
  • 2018-12-03HTML5仿微信聊天界面和朋友圈代码
  • 2018-12-03xml跟html有关系吗?
  • 2018-12-03HTML5画布Canvas坐标轴转换、图案填充、渐变与阴影
  • 2018-12-03HTML怎么导出生成word文档?

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • HTML 页面开头doctype应该大写还是小写?
    • 我想做web前端,怎么学习 ?
    • HTML5 Canvas锯齿图代码实例_html5教程技巧
    • html5 canvas常用属性方法(介绍)
    • HTML5有哪些新特征_html5教程技巧
    • HTML5 新旧语法标记对我们有什么好处
    • 在HTML5中怎样实现Canvas阴影效果
    • 腾讯技术干货!做一个让人闻风丧胆的HTML5页面
    • Html5游戏开发之乒乓Ping Pong游戏示例(三)
    • 小强的HTML5移动开发之路(45)——汇率计算器【1】

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有