Form validation styles help users see if their input is correct or needs fixing. This makes forms easier and faster to use.
Form validation styles in Bootsrap
<input class="form-control is-valid" /> <input class="form-control is-invalid" />
Use is-valid class to show valid input with green border and icon.
Use is-invalid class to show invalid input with red border and icon.
<input type="text" class="form-control is-valid" placeholder="Valid input">
<input type="email" class="form-control is-invalid" placeholder="Invalid email">
<div class="valid-feedback">Looks good!</div>
<div class="invalid-feedback">Please enter a valid value.</div>
This example shows a form with two inputs. The username input is marked valid with a green border and message. The email input is marked invalid with a red border and error message. This helps users quickly see which fields need attention.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Bootstrap Form Validation Styles</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" /> </head> <body> <main class="container mt-5"> <h1>Form Validation Styles Example</h1> <form> <div class="mb-3"> <label for="username" class="form-label">Username (valid)</label> <input type="text" class="form-control is-valid" id="username" value="user123" aria-describedby="usernameFeedback" /> <div id="usernameFeedback" class="valid-feedback"> Looks good! </div> </div> <div class="mb-3"> <label for="email" class="form-label">Email (invalid)</label> <input type="email" class="form-control is-invalid" id="email" aria-describedby="emailFeedback" placeholder="name@example.com" /> <div id="emailFeedback" class="invalid-feedback"> Please enter a valid email address. </div> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> </main> </body> </html>
Always use aria-describedby to link inputs with feedback messages for screen readers.
Validation styles only change appearance; you still need JavaScript or server checks for real validation.
Use these styles to improve user experience by giving clear visual feedback.
Use is-valid and is-invalid classes to show input status.
Pair inputs with valid-feedback or invalid-feedback messages for clarity.
These styles help users fix mistakes quickly and feel confident about their input.
Practice
Solution
Step 1: Understand Bootstrap validation classes
Bootstrap usesis-validto mark inputs as valid andis-invalidfor invalid inputs.Step 2: Identify the class for valid input
The classis-validvisually marks the input as valid with green borders and icons.Final Answer:
is-valid -> Option CQuick Check:
Valid input class = is-valid [OK]
- Confusing is-valid with is-invalid
- Using feedback classes on input instead of messages
- Not adding any validation class
Solution
Step 1: Identify the correct feedback container
Bootstrap usesinvalid-feedbackclass inside adivto show invalid messages.Step 2: Match the correct HTML structure
The correct syntax is<div class="invalid-feedback">Message</div>placed after the input.Final Answer:
<div class="invalid-feedback">Error message</div> -> Option BQuick Check:
Invalid feedback uses div.invalid-feedback [OK]
- Using is-invalid class on feedback text instead of input
- Using valid-feedback class for invalid messages
- Placing feedback inside input tag
<input type="text" class="form-control is-invalid" /> <div class="invalid-feedback">Please enter a valid name.</div>
Solution
Step 1: Analyze the input classes
The input hasis-invalidwhich applies a red border and error icon.Step 2: Check the feedback message
Theinvalid-feedbackdiv shows the error message below the input in red text.Final Answer:
Input box with red border and error message below -> Option AQuick Check:
is-invalid + invalid-feedback = red error style [OK]
- Confusing is-invalid with is-valid
- Expecting green border for is-invalid
- Missing feedback message display
<input type="email" class="form-control" id="email" required> <div class="valid-feedback">Looks good!</div> <div class="invalid-feedback">Please enter a valid email.</div>
Solution
Step 1: Check validation classes on input
The input lacksis-validoris-invalidclasses, so no visual feedback appears.Step 2: Confirm feedback message placement and attributes
Feedback messages are correctly placed outside input;requiredis valid HTML5 attribute.Final Answer:
The input is missing is-valid or is-invalid class to show validation state -> Option DQuick Check:
Validation classes needed on input for feedback display [OK]
- Placing feedback inside input tag
- Removing required attribute thinking it's Bootstrap-only
- Using wrong input type for email
Solution
Step 1: Choose correct validation class for success
Useis-validon input to show green border and success icon.Step 2: Place success message correctly
Success message goes inside adivwith classvalid-feedbackplaced immediately after the input.Final Answer:
Add is-valid to input and place success message inside div.valid-feedback after input -> Option AQuick Check:
Success = is-valid + div.valid-feedback [OK]
- Mixing invalid classes with success messages
- Using span instead of div for feedback
- Placing feedback before input
Ready to prove it?
Pass the test and this pattern moves unknown
