BS5 Form Validation

Bootstrap 5 provides built-in form validation styles to indicate valid or invalid input using classes like .is-valid and .is-invalid.

Key Topics

Basic Validation

Apply validation classes .is-valid or .is-invalid to indicate valid or invalid inputs.

<form class="was-validated">
    <div class="mb-3">
        <label for="validationInput1" class="form-label">Valid input</label>
        <input type="text" class="form-control is-valid" id="validationInput1" value="Valid value" required>
        <div class="valid-feedback">
            Looks good!
        </div>
    </div>
    <div class="mb-3">
        <label for="validationInput2" class="form-label">Invalid input</label>
        <input type="text" class="form-control is-invalid" id="validationInput2" required>
        <div class="invalid-feedback">
            Please provide a valid value.
        </div>
    </div>
</form>

Explanation: Use .is-valid for valid inputs and .is-invalid for invalid inputs to provide immediate visual feedback.

Server-side Validation

Implement server-side validation by applying validation classes dynamically based on server responses.

<form class="was-validated" novalidate>
    <div class="mb-3">
        <label for="serverValidationInput" class="form-label">Server-side validation input</label>
        <input type="text" class="form-control is-valid" id="serverValidationInput" required>
        <div class="valid-feedback">
            Server validated this input.
        </div>
    </div>
</form>

Explanation: Use the was-validated class and dynamically apply .is-valid or .is-invalid based on server-side validation.

Custom Validation Feedback

Provide custom feedback messages for valid or invalid inputs.

<form class="was-validated" novalidate>
    <div class="mb-3">
        <label for="customValidationInput" class="form-label">Custom validation input</label>
        <input type="text" class="form-control" id="customValidationInput" required>
        <div class="invalid-feedback">
            Please enter your username.
        </div>
    </div>
</form>

Explanation: Use .invalid-feedback or .valid-feedback to display custom feedback messages.

Complete Form Validation Example

Below is a complete example showcasing various validation techniques for form inputs.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Bootstrap 5 Form Validation Demo</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <div class="container my-4">
        <h2 class="text-center">Bootstrap Form Validation</h2>
        <form class="was-validated" novalidate>
            <div class="mb-3">
                <label for="validationExample1" class="form-label">Valid input</label>
                <input type="text" class="form-control is-valid" id="validationExample1" value="Valid value" required>
                <div class="valid-feedback">Looks good!</div>
            </div>
            <div class="mb-3">
                <label for="validationExample2" class="form-label">Invalid input</label>
                <input type="text" class="form-control is-invalid" id="validationExample2" required>
                <div class="invalid-feedback">Please provide a valid value.</div>
            </div>
            <button type="submit" class="btn btn-primary">Submit</button>
        </form>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

Explanation: This example demonstrates both client-side and server-side validation techniques with appropriate feedback messages.

Key Takeaways

  • Use .is-valid and .is-invalid classes to indicate valid or invalid inputs.
  • Add .valid-feedback and .invalid-feedback for custom feedback messages.
  • Combine the was-validated class with dynamic validation for better user experience.