HTML
xxxxxxxxxx
1
<!-- Default radio -->
2
<div class="form-check">
3
<input class="form-check-input" type="radio" name="flexRadioDefault" id="reqRadio"/>
4
<label class="form-check-label" for="flexRadioDefault1"> Required </label>
5
</div>
6
7
<!-- Default checked radio -->
8
<div class="form-check">
9
<input class="form-check-input" type="radio" name="flexRadioDefault" id="noReqRadio" checked/>
10
<label class="form-check-label" for="flexRadioDefault2"> No required </label>
11
</div>
12
<form class="needs-validation" novalidate>
13
<div id="noReqSelectWrapper">
14
15
<select
16
class="select"
17
id="basic-select"
18
data-mdb-validation="true"
19
data-mdb-valid-feedback="This value is valid"
20
data-mdb-invalid-feedback="This value is invalid"
21
data-mdb-clear-button="true"
22
>
23
<option value="1">One</option>
24
<option value="2">Two</option>
25
<option value="3">Three</option>
26
<option value="4">Four</option>
27
<option value="5">Five</option>
28
<option value="6">Six</option>
29
<option value="7">Seven</option>
30
<option value="8">Eight</option>
31
</select>
32
</div>
33
<button type="submit" id="submit" class="btn btn-primary btn-sm mt-3">
34
Submit
35
</button>
36
</form>
CSS
1
1
JS
xxxxxxxxxx
1
(() => {
2
'use strict';
3
4
// Fetch all the forms we want to apply custom Bootstrap validation styles to
5
const forms = document.querySelectorAll('.needs-validation');
6
7
// Loop over them and prevent submission
8
Array.prototype.slice.call(forms).forEach((form) => {
9
form.addEventListener('submit', (event) => {
10
event.preventDefault();
11
event.stopPropagation();
12
13
form.classList.add('was-validated');
14
},false);
15
});
16
17
const noReqRadio = document.querySelector('#noReqRadio')
18
const reqRadio = document.querySelector('#reqRadio')
19
const selectEl = document.querySelector('#basic-select')
20
21
noReqRadio.addEventListener('click', () => {
22
mdb.Select.getInstance(selectEl).dispose();
23
selectEl.removeAttribute('data-mdb-validation')
24
const instance = new mdb.Select(selectEl);
25
})
26
27
reqRadio.addEventListener('click', () => {
28
console.log(reqRadio.value)
29
mdb.Select.getInstance(selectEl).dispose();
30
selectEl.setAttribute('data-mdb-validation', 'true')
31
const instance = new mdb.Select(selectEl);
32
})
33
})();
34
Console errors: 0