HTML
xxxxxxxxxx
1
<form class="needs-validation container" novalidate>
2
<div class="form-row">
3
<div class="col-md-4 mb-3 md-form">
4
<label for="validationCustom012">First name</label>
5
<input type="text" class="form-control" id="validationCustom012" value="" required>
6
<div class="invalid-feedback">Nope!</div>
7
</div>
8
<div class="col-md-4 mb-3 md-form">
9
<input type="text" name="date" id="date" class="form-control datepicker" value="" required/>
10
<label for="date">Date</label>
11
<div class="invalid-feedback">Please select a valid date.</div>
12
</div>
13
<div class="col-md-4 mb-3">
14
<select class="mdb-select md-form" required searchable="Search here..">
15
<option value="1">USA</option>
16
<option value="2">Germany</option>
17
<option value="3" selected>Poland</option>
18
</select>
19
<label class="mdb-main-label">Country</label>
20
<div class="invalid-feedback check1">Please select a country.</div>
21
</div>
22
</div>
23
<div class="form-row mb-4">
24
<div class="col-md-4 mb-3">
25
<div class="form-check pl-0">
26
<input class="form-check-input" type="checkbox" value="" id="invalidCheck2" required>
27
<label class="form-check-label" for="invalidCheck2">Agree to terms and conditions</label>
28
<div class="invalid-feedback">You shall not pass!</div>
29
</div>
30
</div>
31
<div class="col-md-4 mb-3">
32
<select class="mdb-select md-form" searchable="Search here..">
33
<option value="1">USA</option>
34
<option value="2">Germany</option>
35
<option value="3">Poland</option>
36
</select>
37
<label class="mdb-main-label">Country</label>
38
</div>
39
</div>
40
41
<button class="btn btn-primary btn-rounded" type="submit">Submit form</button>
42
</form>
CSS
1
1
JS
xxxxxxxxxx
1
(function() {
2
'use strict';
3
window.addEventListener('load', function() {
4
// Fetch all the forms we want to apply custom Bootstrap validation styles to
5
var forms = document.getElementsByClassName('needs-validation');
6
// Loop over them and prevent submission
7
var validation = Array.prototype.filter.call(forms, function(form) {
8
form.addEventListener('submit', function(event) {
9
10
$('.check1').css("display","none");
11
if($('.dropdown-content li.selected').length===0){
12
$('.check1').css("display","block");
13
}
14
15
if (form.checkValidity() === false) {
16
event.preventDefault();
17
event.stopPropagation();
18
}
19
form.classList.add('was-validated');
20
}, false);
21
});
22
}, false);
23
})();
24
25
$(document).ready(function() {
26
$('.mdb-select').materialSelect(); // Initialize material styling for select dropdown
27
$('.datepicker').pickadate(); // Initialize datepicker
28
$('.timepicker').pickatime({ twelvehour: true,});
29
// Initialize timepicker
30
$('.select-wrapper').click(function(){
31
$('.check1').css("display","none");
32
})
33
$('.datepicker').removeAttr('readonly');
34
$('.mdb-select.select-wrapper .select-dropdown').removeAttr('readonly').prop('required', true).addClass('form-control');
35
});
Console errors: 0