What is the Validation?
Provide valuable, actionable feedback to your users with HTML5 form validation, via browser default behaviors or custom styles and JavaScript.
Installation
Manual installation (zip package)
To take advantage of our Bootstrap images component and use them in your project, you first need to install the MDB 5 Free package
MDB CLI
Watch our Quick Start Tutorial to discover and use the full potential of MDB 5 and MDB CLI
NPM
Prerequisites
Before starting the project make sure to install Node LTS (12.x.x recommended).
Installation
To install MDB UI KIT in your project easily type the following command in the terminal:
npm i mdb-ui-kit
Importing JS modules
You can import the entire library or just individual modules:
import * as mdb from 'mdb-ui-kit'; // lib
import { Input } from 'mdb-ui-kit'; // module
Importing CSS file
To import MDB stylesheet please use the following syntax:
@import '~mdb-ui-kit/css/mdb.min.css';
Importing SCSS modules
You can also import individual SCSS modules. To do it properly, we recommend to copy them from the node_modules/mdb-ui-kit/src/scss location directly to your project and import in the same way as CSS files.
Webpack integration
You can significantly speed up the process of creating a new project based on Webpack using our Starter.
CDN
Installation via CDN is one of the easiest methods of integrating MDB UI KIT with your project. Just copy the latest compiled JS script tag and CSS link tag from cdnjs to the application.
Don't forget to add also Font Awesome and Roboto font if you need it. Here's an example code:
CSS
<!-- Font Awesome -->
<link
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css"
rel="stylesheet"
/>
<!-- Google Fonts -->
<link
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap"
rel="stylesheet"
/>
<!-- MDB -->
<link
href="https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.3.0/mdb.min.css"
rel="stylesheet"
/>
JS
<!-- MDB -->
<script
type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.3.0/mdb.min.js"
></script>
Customization
Basic example
For custom MDB form validation messages, you’ll need to add the novalidate
boolean attribute to your
:invalid
and :valid
styles applied to your form controls.
Custom feedback styles apply custom colors, borders, focus styles, and background icons to better communicate feedback.
HTML
<form class="row g-3 needs-validation" novalidate>
<div class="col-md-4">
<div class="form-outline">
<input
type="text"
class="form-control"
id="validationCustom01"
value="Mark"
required
/>
<label for="validationCustom01" class="form-label">First name</label>
<div class="valid-feedback">Looks good!</div>
</div>
</div>
<div class="col-md-4">
<div class="form-outline">
<input
type="text"
class="form-control"
id="validationCustom02"
value="Otto"
required
/>
<label for="validationCustom02" class="form-label">Last name</label>
<div class="valid-feedback">Looks good!</div>
</div>
</div>
<div class="col-md-4">
<div class="input-group form-outline">
<span class="input-group-text" id="inputGroupPrepend">@</span>
<input
type="text"
class="form-control"
id="validationCustomUsername"
aria-describedby="inputGroupPrepend"
required
/>
<label for="validationCustomUsername" class="form-label">Username</label>
<div class="invalid-feedback">Please choose a username.</div>
</div>
</div>
<div class="col-md-6">
<div class="form-outline">
<input type="text" class="form-control" id="validationCustom03" required />
<label for="validationCustom03" class="form-label">City</label>
<div class="invalid-feedback">Please provide a valid city.</div>
</div>
</div>
<div class="col-md-6">
<div class="form-outline">
<input type="text" class="form-control" id="validationCustom05" required />
<label for="validationCustom05" class="form-label">Zip</label>
<div class="invalid-feedback">Please provide a valid zip.</div>
</div>
</div>
<div class="col-12">
<div class="form-check">
<input
class="form-check-input"
type="checkbox"
value=""
id="invalidCheck"
required
/>
<label class="form-check-label" for="invalidCheck">
Agree to terms and conditions
</label>
<div class="invalid-feedback">You must agree before submitting.</div>
</div>
</div>
<div class="col-12">
<button class="btn btn-primary" type="submit">Submit form</button>
</div>
</form>
JS
// Example starter JavaScript for disabling form submissions if there are invalid fields
(() => {
'use strict';
// Fetch all the forms we want to apply custom Bootstrap validation styles to
const forms = document.querySelectorAll('.needs-validation');
// Loop over them and prevent submission
Array.prototype.slice.call(forms).forEach((form) => {
form.addEventListener('submit', (event) => {
if (!form.checkValidity()) {
event.preventDefault();
event.stopPropagation();
}
form.classList.add('was-validated');
}, false);
});
})();
Browser defaults
Not interested in custom validation feedback messages or writing JavaScript to change form behaviors? All good, you can use the browser defaults. Try submitting the form below. Depending on your browser and OS, you’ll see a slightly different style of feedback.
While these feedback styles cannot be styled with CSS, you can still customize the feedback text through JavaScript.
HTML
<form class="row g-3">
<div class="col-md-4">
<div class="form-outline">
<input
type="text"
class="form-control"
id="validationDefault01"
value="Mark"
required
/>
<label for="validationDefault01" class="form-label">First name</label>
</div>
</div>
<div class="col-md-4">
<div class="form-outline">
<input
type="text"
class="form-control"
id="validationDefault02"
value="Otto"
required
/>
<label for="validationDefault02" class="form-label">Last name</label>
</div>
</div>
<div class="col-md-4">
<div class="input-group form-outline">
<span class="input-group-text" id="inputGroupPrepend2">@</span>
<input
type="text"
class="form-control"
id="validationDefaultUsername"
aria-describedby="inputGroupPrepend2"
required
/>
<label for="validationDefaultUsername" class="form-label">Username</label>
</div>
</div>
<div class="col-md-6">
<div class="form-outline">
<input type="text" class="form-control" id="validationDefault03" required />
<label for="validationDefault03" class="form-label">City</label>
</div>
</div>
<div class="col-md-6">
<div class="form-outline">
<input type="text" class="form-control" id="validationDefault05" required />
<label for="validationDefault05" class="form-label">Zip</label>
</div>
</div>
<div class="col-12">
<div class="form-check">
<input
class="form-check-input"
type="checkbox"
value=""
id="invalidCheck2"
required
/>
<label class="form-check-label" for="invalidCheck2">
Agree to terms and conditions
</label>
</div>
</div>
<div class="col-12">
<button class="btn btn-primary" type="submit">Submit form</button>
</div>
</form>
You can see more customization examples on the 📄 Validation documentation page
Crucial Resources
Here are the resources that we have prepared to help you work with this component:
- Read 📄 Validation documentation page <-- start here
- In to get the most out of your project, you should also get acquainted with other Forms options related to Validation. See the section below to find the list of them.
- You can use predesigned Forms elements in 📥 Starter Bootstrap 5 templates
- Templates are a part of 📦 Free UI Kit for Bootstrap 5
- After finishing the project you can publish it with CLI in order to receive 💽 Free hosting (beta)
Related Content and Styles options & features
- Autocomplete
- Checkbox
- Datepicker
- DateTimepicker
- File
- Input fields
- Input group
- Multi Range Slider
- Search
- Select
- Switch
- Radio
- Range
- Timepicker
Learn Bootstrap 5 in 1.5H
Additional resources
Learn web development with our learning roadmap:
🎓 Start Learning
Join our mailing list & receive exclusive resources for developers
🎁 Get gifts
Join our private FB group for inspiration & community experience
👨👩👧👦 Ask to join
Support creation of open-source packages with a STAR on GitHub