Nem használhatjuk a [disabled] attribútumot:
A érvényesség ellenőrzés a gomb kattintására indul el.
===== JavaScript kód =====
Be kell illesztenünk egy JavaScript kódot a működéshez. A kód a [[https://getbootstrap.com/docs/5.3/forms/validation/|Bootstrap weboldaláról]] van,
de két helyen ki kell egészíteni típussal.
ngOnInit() {
this.empForm = this.builder.group({
firstName: new FormControl('', [Validators.required, Validators.minLength(2)]),
lastName: new FormControl('', [Validators.required, Validators.minLength(2)]),
username: new FormControl('', [Validators.required, Validators.minLength(3)]),
city: new FormControl('', [Validators.required, Validators.minLength(3)]),
state: new FormControl('', [Validators.required]),
zip: new FormControl('', [Validators.required, Validators.pattern('^[0-9]{5}$')]),
terms: new FormControl(false, [Validators.requiredTrue])
});
// 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.from(forms).forEach((form: any) => {
form.addEventListener('submit', (event:Event) => {
if (!form.checkValidity()) {
event.preventDefault()
event.stopPropagation()
}
form.classList.add('was-validated')
}, false)
})
})()
}
Az eredeti Bootstrap weboldalon található mintához tettünk a form needs-validation osztályt, és
a @ jelet lecseréltük a következőre: @
Az űrlap továbbiakban ki kell egészíteni, például a form elemet:
[formGroup]="empForm"
Az input elemeket:
formControlName="firstName"
===== Angular érvényesség - Bootstrap megjelenítés =====
Az angular **ng-valid**, **ng-invalid** és hasonló attribútumokat használ.
A Bootstrap az **is-valid** és az **is-invalid** attribútumokkal dolgozik. Az Angular
ugyan nem hoz létre ilyen attribútumokat alapértelmezetten, de néhány sorral
megoldható, hogy létrejöjjenek.
Település esetén például:
[class.is-invalid]="employeeForm.get('city')?.invalid
&& employeeForm.get('city')?.touched"
[class.is-valid]="employeeForm.get('city')?.valid
&& employeeForm.get('city')?.touched"
Kicsit több az input elemből:
Nem megfelelő település
Jónak látszik