cari
Rumahhujung hadapan webTutorial H5详解HTML5中表单验证的8种方法介绍

在深人探讨表单验证之前,让我们先思考一下表单验证的真实含义。就其核心而言,表单验证是一套系统,它为终端用户检测无效的控件数据并标记这些错误。换言之,表单验证就是在表单提交服务器前对其进行一系列的检查并通知用户纠正错误。
但是真正的表单验证是什么?
是一种优化。
之所以说表单验证是一种优化,是因为仅通过表单验证机制不足以保证提交给服务器的表单数据是正确和有效的。另一方面,设计表单验证是为了让Web应 用更快地抛出错误。换句话说,最好利用浏览器内置的处理机制来告知用户网页内包含无效的表单控件值。过去,数据在网络上转一圈,仅仅是为了让服务器通知用 户他输入了错误的数据。如果浏览器完全有能力让错误在离开客户端之前就被捕获到,那么我们应该利用这个优势。
不过,浏览器的表单检查还不足以处理所有的错误。
话虽如此,HTML5还是引入了八种用于验证表单控件的数据正确性的方法。让我们依次了解一下,不过先要介绍一下用于反馈验证状态的ValidityState对象。
在支持Html5表单验证的浏览器中,可以通过表单控件来访问ValidityState对象:

var valCheck = document.myForm.myInput.validity;

这行代码获取了名为myInput的表单元素的ValidityState对象。对象包含了对所有八种验证状态的引用,以及最终验证结果。
调用方式如下:

valCheck.valid

执行完毕,我们会得到一个布尔值,它表示表单控件是否已通过了所有的验证约束条件。可以把valid特性看做是最终验证结果:如果所有八个约束条件都通过了,valid特性就是true,否则,只要有一项约束没通过,valid标志都是false。
如前所述,任何表单元素都有八个可能的验证约束条件。每个条件在ValidityState对象中都有对应的特性名,可以用适当的方式访问。让我们逐一分析,看看它们是如何与表单控件关联的,以及如何基于ValidityState对象来对它们进行检查:
1、valueMissing
目的:确保表单控件中的值已填写。
用法:在表单控件中将required特性设置为true。
示例:

<input type="text" name="myText" required>

详细说明:如果表单控件设置了required特性,那么在用户填写或者通过代码调用方式填值之前,控件会一直处于无效状态。例如,空的文本输入框无法通过必填检查,除非在其中输入任意文本。输入值为空时,valueMissing会返回true。
2、typeMismatch
目的:保证控件值与预期类型相匹配(如numbe、email、URL等).
用法:指定表单控件的type特性值。
示例:

<input type="email" name="myEmail">

详细说明:特殊的表单控件类型不只是用来定制手机键盘, 如果浏览器能够识别出来表单控件中的输入不符合对应的类型规则,比如email地址中没有@符号,或者number型控件的输入值不是有效的数字,那么浏 览器就会把这个控件标记出来以提示类型不匹配。无论哪种出错情况,typeMismatch将返回true。
3、patternMismatch
目的:根据表单控件上设置的格式规则验证输入是否为有效格式。
用法:在表单控件上设置pattern特性,井赋予适当的匹配规则。
示例:

<input type="text" name="creditcardnumber" pattern="[0-9]{16}" title="A credit
card number is 16 digits with no spaces or dashes">

详细说明:pattern特性向开发人员提供了一种强大而灵活的方式来为表单的控件值设定正则表达式验证机制。当为控件设置了pattern特性后,只要 输入控件的值不符合模式规则,patternMismatch就会返回true值。从引导用户和技术参考两方面考虑,你应该在包含pattern特性的表 单控件中设置title特性以说明规则的作用。
4、tooLong
目的:避免输入值包含过多字符。
用法:在表单控件上设置maxLength特性。
示例:

<input type="text" name="limitedText" maxLength="140">

详细说明:如果输入值的长度超过maxLength, tooLong特性会返回true。虽然表单控件通常会在用户输入时限制最大长度,但在有些情况下,如通过程序设置,还是会超出最大值。
5、rangeUnderflow
目的:限制数值型控件的最小值。
用法:为表单控件设置min特性,并赋予允许的最小值。
示例:

<input type="range" name="ageCheck" min="18">

详细说明:在需要做数值范围检查的表单控件中,数值很可能会暂时低于设置的下限。此时,ValidityState的rangeUnderflow特性将返回true。
6、rangeOverflow
目的:限制数值型控件的最大值。
用法:为表单控件设置max特性,并赋予允许的最大值。
示例:

<input type="range" name="kidAgeCheck" max="12">

详细说明:与rangeUnderflow类似,如果一个表单控件的值比max更大,特性将返回true。
7、stepMismatch
目的:确保输入值符合min、max及step即设置。
用法:为表单控件设置step特性,指定数值的增量。
示例:

<input type="range" name="confidenceLevel" min="0" max="100" step="5">

详细说明:此约束条件用来保证数值符合min、max和step的要求。换句话说,当前值必须是最小值与step特性值的倍数之和。例如,范围从0到100,step特性值为5,此时就不允许出现17,否则stepMismatch返回true值。
8、customError
目的:处理应用代码明确设置及计算产生的错误。
用法:调用setCustomValidity(message)将表单控件置于customError状态。
示例:

passwordConfirmationField.setCustomValidity("Password values do not match.");

详细说明:浏览器内置的验证机制不适用时,需要显示自定义验证错误信息。当输入值不符合语义规则时,应用程序代码应设置这些自定义验证消息。
自定义验证消息的典型用例是验证控件中的值是否一致。例如,密码和密码确认两个输人框的值不匹配。只要定制了验证消息,控件就会处于无效状态,并且customError返回true。要清除错误,只需在控件上调用setCustomValidity("")即可。

以上就是详解HTML5中表单验证的8种方法介绍 的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Menguasai Microdata: Panduan Langkah demi Langkah untuk HTML5Menguasai Microdata: Panduan Langkah demi Langkah untuk HTML5May 14, 2025 am 12:07 AM

Microdatainhtml5enhancesseoanduseRexpereByprovidingstructuredDatatoSearchengines.1) UseItemscope, itemType, andItempropattributeMarkupContentLikeProductsorevents.2) testmicrodatawithtoolsonsdoolsonshins

Apa yang baru dalam bentuk html5? Meneroka Jenis Input BaruApa yang baru dalam bentuk html5? Meneroka Jenis Input BaruMay 13, 2025 pm 03:45 PM

Html5introduceSnewinputTypestHatenhanceuserExperience, SimplyDevelopment, andImproveAccessibility.1) automatik

Memahami H5: Makna dan KepentinganMemahami H5: Makna dan KepentinganMay 11, 2025 am 12:19 AM

H5 adalah HTML5, versi kelima HTML. HTML5 meningkatkan ekspresi dan interaktiviti laman web, memperkenalkan ciri -ciri baru seperti tag semantik, sokongan multimedia, penyimpanan luar talian dan lukisan kanvas, dan menggalakkan pembangunan teknologi web.

H5: Pematuhan kebolehaksesan dan piawaian webH5: Pematuhan kebolehaksesan dan piawaian webMay 10, 2025 am 12:21 AM

Kebolehcapaian dan pematuhan dengan piawaian rangkaian adalah penting untuk laman web. 1) Kebolehcapaian memastikan semua pengguna mempunyai akses yang sama ke Laman Web, 2) Piawaian rangkaian mengikuti untuk meningkatkan kebolehcapaian dan konsistensi Laman Web, 3) Kebolehaksesan memerlukan penggunaan HTML semantik, navigasi papan kekunci, kontras warna dan teks alternatif, 4) berikutan prinsip -prinsip ini bukan hanya keperluan moral dan undang -undang, tetapi juga menguatkan asas pengguna.

Apakah tag H5 dalam html?Apakah tag H5 dalam html?May 09, 2025 am 12:11 AM

Tag H5 dalam HTML adalah tajuk peringkat kelima yang digunakan untuk menandakan tajuk atau sub-tajuk yang lebih kecil. 1) Tag H5 membantu memperbaiki hierarki kandungan dan meningkatkan kebolehbacaan dan SEO. 2) Digabungkan dengan CSS, anda boleh menyesuaikan gaya untuk meningkatkan kesan visual. 3) Gunakan tag H5 dengan munasabah untuk mengelakkan penyalahgunaan dan memastikan struktur kandungan logik.

Kod H5: Panduan Pemula untuk Struktur WebKod H5: Panduan Pemula untuk Struktur WebMay 08, 2025 am 12:15 AM

Kaedah membina laman web di HTML5 termasuk: 1. Gunakan tag semantik untuk menentukan struktur laman web, seperti, dan sebagainya; 2. Kandungan Multimedia, Penggunaan dan Tag Multimedia; 3. Memohon fungsi lanjutan seperti pengesahan bentuk dan penyimpanan tempatan. Melalui langkah -langkah ini, anda boleh membuat laman web moden dengan struktur yang jelas dan ciri -ciri yang kaya.

Struktur Kod H5: Mengatur Kandungan untuk KebolehbacaanStruktur Kod H5: Mengatur Kandungan untuk KebolehbacaanMay 07, 2025 am 12:06 AM

Struktur kod H5 yang munasabah membolehkan halaman menonjol di antara banyak kandungan. 1) Gunakan label semantik seperti, dan lain -lain untuk mengatur kandungan untuk menjadikan struktur jelas. 2) Kawal kesan rendering halaman pada peranti yang berbeza melalui susun atur CSS seperti Flexbox atau Grid. 3) Melaksanakan reka bentuk responsif untuk memastikan halaman menyesuaikan diri dengan saiz skrin yang berbeza.

H5 vs Versi HTML yang lebih tua: PerbandinganH5 vs Versi HTML yang lebih tua: PerbandinganMay 06, 2025 am 12:09 AM

Perbezaan utama antara HTML5 (H5) dan versi lama HTML termasuk: 1) H5 memperkenalkan tag semantik, 2) menyokong kandungan multimedia, dan 3) menyediakan fungsi penyimpanan luar talian. H5 meningkatkan fungsi dan ekspresi laman web melalui tag dan API baru, seperti dan tag, meningkatkan pengalaman pengguna dan kesan SEO, tetapi perlu memberi perhatian kepada isu keserasian.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Nordhold: Sistem Fusion, dijelaskan
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)