搜索
首页web前端html教程HTML交互式表单验证

HTML交互式表单验证

Mar 19, 2017 pm 05:31 PM

  在 HTML 中创建表单总是有点复杂。你首先得将 HTML 标记编写正确,然后需要确保每一个表单项在提交之前都有一个可用的值,最后还需要在有问题时用提醒来告知用户。

  还好 HTML5 引入了一些新的特性,让这件事情变得轻松了许多。特别是对表单控件进行了扩展来支持约束,从而无需使用 JavaScript, 就可以让浏览器在客户端对表单内容进行验证。

  WebKit 已经进行了部分支持。在表单控件上使用属性来描述约束,然后使用 JavaScript 中的 checkValidity() API 来查询一个表单控件和整个表单输入的有效性,这已经成为可能。使用 ValidityState API 来了解违反了哪个约束,也是可以实现的。

  不过, WebKit 以前并不支持 HTML 的交互式表单验证, 而这个会发生在表单提交时 (除非在 ff9c23ada1bcecdd1a0fb5d5a0f18437 元素上设置了 novalidate 属性) 或者是使用 reportValidity() API 的时候。此外,我们很高兴地宣布, Webkit 现在已经对此进行了支持,并且在 Safari 技术预览版 19 也启用了这项功能。有了交互式表单验证, WebKit 现在将会对表单中所有的表单控件进行有效性检测。如果有哪怕一个表单控件违反了约束,WebKit 就会将输入焦点放到第一个上面,界面页面滚动显示出这个控件,然后在其旁边显示一个气泡消息来对问题进行解释。

 验证的约束

  输入类型

  有一些输入类型本身就拥有一些内在的约束。将 type 设置为 “email”, “number” 或者 “URL” 的话,就会自动检查输入的值是否是有效的电子邮件地址、数字或者 URL, 例如:

<input type="email">

  验证属性

  下面的属性可以被用来在表单控件中描述约束:

  • required: 告诉用户必须输入一个值。


  • pattern=“[a-z]”: 告诉用户必须输入一个可以匹配给定 JavaScript 正则表达式的值。


  • minlength=x: 告诉用户必须输入一个至少有 x 个字符的值。


  • maxlength=y: 告诉用户必须输入一个至多有 x 个字符的值。


  • min=x: 告诉用户必须输入一个大于或者等于 x 的值。。


  • max=y: 告诉用户必须输入一个小于或者等于 y 的值。


  • step=x: 告诉用户必须输入一个在 min 的基础上加上 x 的倍数的值。

 约束验证

  约束验证可以用以下集中方式触发:

  • 可以在一个表单元素或者特定的表单控件上调用 checkValidity() 。这个方法会在有约束被违反的时候返回 false。同时它也会在违反约束的元素上触发一个叫做“invalid”的事件。可以使用通过表单控件上的“validity”属性所暴露的 ValidityState 对象来检查违反了哪个约束。


  • 可以在一个表单约束或者特定的表单控件上调用 reportValidity()。这样做会触发针对约束的交互式验证。此外 checkValidity(), reportValidity() 也会将输入焦点放到第一个被检查出违背了约束的元素上,并且在其旁边显示一个气泡消息来对问题进行描述。


  • 交互式表单验证也会在提交表单的时候发生,除非在ff9c23ada1bcecdd1a0fb5d5a0f18437元素上设置了“novalidate”属性。

 自定义约束

  使用 JavaScript 来做验证然后利用 setCustomValidity() API 的话,可以实现更加复杂的验证约束或者向校验出违反约束的输入项提供更加有用的错误消息。

  JavaScript 可以通过在一个表单控件上侦听给定的事件来触发(例如: onchange, oninput, …) 。然后被执行的 JavaScript 代码可以对表单控件的数据进行验证,然后使用 setCustomValidity() 来对控件的错误消息进行更新:

<label for="feeling">Feeling:</label>
<input id="feeling" type="text" oninput="validateFeeling(this)">
<script>
 function validateFeeling(input) {
   if (input.value == "good" || input.value == "fine" || input.value == "tired") {
     input.setCustomValidity(&#39;"&#39; + input.value + &#39;" is not a feeling&#39;);
   } else {
     // The data is valid, reset the error message.
     input.setCustomValidity(&#39;&#39;);
   }
 }
</script>

 验证消息气泡提示

  在进行交互式表单验证的时候, 一个针对问题进行说明的气泡提示会显示在第一个拥有被验证违反约束的数据的表单控件旁边, 像这样:

  针对特定的约束默认设置了一些本地化的验证消息。如果你希望对验证消息进行自定义, 可以考虑使用 setCustomValidity() API。注意,WebKit 对于 JavaScript 的国际化 API 也是支持的,这个能够帮助我们对自定义的验证消息进行本地化。

 总结

  HTML 交互式表单验证现在已经在 Webkit 中得到了支持,并且在 Safari 技术预览版 19 中也是启用了的。请尝试一下我们的在线演示来体验这项功能。也欢迎您报告BUG。

以上是HTML交互式表单验证的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
HTML:是编程语言还是其他?HTML:是编程语言还是其他?Apr 15, 2025 am 12:13 AM

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增强WebevebDevelopment。

HTML:建立网页的结构HTML:建立网页的结构Apr 14, 2025 am 12:14 AM

HTML是构建网页结构的基石。1.HTML定义内容结构和语义,使用、、等标签。2.提供语义化标记,如、、等,提升SEO效果。3.通过标签实现用户交互,需注意表单验证。4.使用、等高级元素结合JavaScript实现动态效果。5.常见错误包括标签未闭合和属性值未加引号,需使用验证工具。6.优化策略包括减少HTTP请求、压缩HTML、使用语义化标签等。

从文本到网站:HTML的力量从文本到网站:HTML的力量Apr 13, 2025 am 12:07 AM

HTML是一种用于构建网页的语言,通过标签和属性定义网页结构和内容。1)HTML通过标签组织文档结构,如、。2)浏览器解析HTML构建DOM并渲染网页。3)HTML5的新特性如、、增强了多媒体功能。4)常见错误包括标签未闭合和属性值未加引号。5)优化建议包括使用语义化标签和减少文件大小。

了解HTML,CSS和JavaScript:初学者指南了解HTML,CSS和JavaScript:初学者指南Apr 12, 2025 am 12:02 AM

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML的角色:构建Web内容HTML的角色:构建Web内容Apr 11, 2025 am 12:12 AM

HTML的作用是通过标签和属性定义网页的结构和内容。1.HTML通过到、等标签组织内容,使其易于阅读和理解。2.使用语义化标签如、等增强可访问性和SEO。3.优化HTML代码可以提高网页加载速度和用户体验。

HTML和代码:仔细观察术语HTML和代码:仔细观察术语Apr 10, 2025 am 09:28 AM

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代码” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代码”代码“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML,CSS和JavaScript:Web开发人员的基本工具HTML,CSS和JavaScript:Web开发人员的基本工具Apr 09, 2025 am 12:12 AM

HTML、CSS和JavaScript是Web开发的三大支柱。1.HTML定义网页结构,使用标签如、等。2.CSS控制网页样式,使用选择器和属性如color、font-size等。3.JavaScript实现动态效果和交互,通过事件监听和DOM操作。

HTML,CSS和JavaScript的角色:核心职责HTML,CSS和JavaScript的角色:核心职责Apr 08, 2025 pm 07:05 PM

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器