input:invalid {}
style of CSS is useful when the form element is invalid, but the user experience is poor when using it directly. For example, an invalid style is displayed immediately when a form loads, which confuses the user. Therefore, this usage is rare in practical applications. However, if this problem is avoided, :invalid
selector can play a huge role in form validation without relying on large libraries.
Dave proposed an improvement based on the original idea from 2017:
<code>form.errors :invalid { outline: 2px solid red; }</code>
The native error style is applied only after confirming that the form is in an error state and errors
class is added. Testing is also easy. For example, you can apply this class when the submit button is clicked:
<code>submitButton.addEventListener("click", (e) => { form.classList.toggle("errors", !form.checkValidity()) });</code>
It can also be applied when the input box loses focus or at other times. You can even wrap each input box in a wrapper and switch the wrapper class when appropriate.
Dave applies this idea to Vue:
We set
errors
tofalse
when initializing the form component because we don't want the wrong style to be displayed before the user submits the form. TheinvalidateForm
function just setsthis.error
totrue
. This is one of the disadvantages ofCSS :invalid
pseudo-class, it is too urgent. By listening to theinvalid
event, the application of styles can be delayed until after the first form submission attempt, we know that there is an error in the form.
This approach does not require additional libraries, making full use of the native functionality of HTML form validation. The following link is an improved version that also displays an error message:
Direct link →
The above is the detailed content of Happier HTML5 form validation in Vue. For more information, please follow other related articles on the PHP Chinese website!

CSSCountersareusedtomanageautomaticnumberinginwebdesigns.1)Theycanbeusedfortablesofcontents,listitems,andcustomnumbering.2)Advancedusesincludenestednumberingsystems.3)Challengesincludebrowsercompatibilityandperformanceissues.4)Creativeusesinvolvecust

Using scroll shadows, especially for mobile devices, is a subtle bit of UX that Chris has covered before. Geoff covered a newer approach that uses the animation-timeline property. Here’s yet another way.

Let’s run through a quick refresher. Image maps date all the way back to HTML 3.2, where, first, server-side maps and then client-side maps defined clickable regions over an image using map and area elements.

The State of Devs survey is now open to participation, and unlike previous surveys it covers everything except code: career, workplace, but also health, hobbies, and more.

CSS Grid is a powerful tool for creating complex, responsive web layouts. It simplifies design, improves accessibility, and offers more control than older methods.

Article discusses CSS Flexbox, a layout method for efficient alignment and distribution of space in responsive designs. It explains Flexbox usage, compares it with CSS Grid, and details browser support.

The article discusses techniques for creating responsive websites using CSS, including viewport meta tags, flexible grids, fluid media, media queries, and relative units. It also covers using CSS Grid and Flexbox together and recommends CSS framework

The article discusses the CSS box-sizing property, which controls how element dimensions are calculated. It explains values like content-box, border-box, and padding-box, and their impact on layout design and form alignment.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

SublimeText3 Linux new version
SublimeText3 Linux latest version

Dreamweaver Mac version
Visual web development tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.
