xxxxxxxxxx
1
<!-- Default radio -->
2
<div class="form-check">
3
<input class="form-check-input" type="radio" name="flexRadioDefault" id="reqRadio" checked/>
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"/>
10
<label class="form-check-label" for="flexRadioDefault2"> No required </label>
11
</div>
12
<form class="needs-validation mt-4" 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
data-mdb-label="tes"
23
>
24
<option value="" hidden></option>
25
<option value="1">One</option>
26
<option value="2">Two</option>
27
<option value="3">Three</option>
28
<option value="4">Four</option>
29
<option value="5">Five</option>
30
<option value="6">Six</option>
31
<option value="7">Seven</option>
32
<option value="8">Eight</option>
33
</select>
34
<label class="form-label select-label">THIS IS A LABEL</label>
35
</div>
36
<button type="submit" id="submit" class="btn btn-primary btn-sm mt-3">
37
Submit
38
</button>
39
</form>
1
1
xxxxxxxxxx
1
(() => {
2
'use strict';
3
// Fetch all the forms we want to apply custom Bootstrap validation styles to
4
const forms = document.querySelectorAll('.needs-validation');
5
6
// Loop over them and prevent submission
7
Array.prototype.slice.call(forms).forEach((form) => {
8
form.addEventListener('submit', (event) => {
9
event.preventDefault();
10
event.stopPropagation();
11
12
form.classList.add('was-validated');
13
},false);
14
});
15
16
const noReqRadio = document.querySelector('#noReqRadio')
17
const reqRadio = document.querySelector('#reqRadio')
18
const selectEl = document.querySelector('#basic-select')
19
20
function insertAfter(newNode, existingNode) {
21
existingNode.parentNode.insertBefore(newNode, existingNode.nextSibling);
22
}
23
const label = document.createElement('label');
24
label.classList.add('form-label')
25
label.classList.add('select-label')
26
27
noReqRadio.addEventListener('click', () => {
28
mdb.Select.getInstance(selectEl).dispose();
29
selectEl.removeAttribute('data-mdb-validation')
30
label.textContent = 'label no required'
31
insertAfter(label, selectEl)
32
const instance = new mdb.Select(selectEl);
33
})
34
35
reqRadio.addEventListener('click', () => {
36
console.log(reqRadio.value)
37
mdb.Select.getInstance(selectEl).dispose();
38
selectEl.setAttribute('data-mdb-validation', 'true')
39
label.textContent = 'label required'
40
insertAfter(label, selectEl)
41
const instance = new mdb.Select(selectEl, {});
42
})
43
})();
44
Console errors: 0