[[oktatas:web:angular|< Angular]]
====== Angular - Űrlapok érvényessége ======
* **Szerző:** Sallai András
* Copyright (c) 2022, Sallai András
* Szerkesztve: 2022, 2024
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== Validátorok =====
* https://angular.io/api/forms/Validators/
===== Reaktív űrlap modul =====
//...
imports: [
ReactiveFormsModule
];
===== Űrlap =====
===== TypeScript =====
import { FormControl, FormGroup, Validators } from '@angular/forms';
//...
export class AppComponent {
loginForm = new FormGroup({
email: new FormControl('', Validators.required),
password: new FormControl('')
})
}
===== Böngészőben =====
Ha invalid, látszik a böngésző fejlesztői felületén,
az Elements fülön.
^^^^^^^^^^
Ha érvényes:
ng-valid
===== CSS =====
Az attribútum alapján lehet egy kis piros széle, CSS-sel:
input.ng-invalid {
border-left: 5px solid red;
}
input.ng-valid {
border-left: 5px solid green;
}
===== Érvényesség =====
export class LoginComponent implements OnInit {
loginForm !: FormGroup;
constructor() { }
ngOnInit(): void {
this.loginForm = new FormGroup({
email: new FormControl('', Validators.required),
password: new FormControl(''),
})
}
}
Ha több megkötést is alkalmazunk, akkor [ ] szögletes zárójelbe (tömbbe) kell tenni a megkötéseket!
Kötelezőnek jelölés és email:
email: new FormControl('', [Validators.required,Validators.email])
Minta használata:
name: new FormControl('', Validators.pattern('[a-z]'))
==== FormBuilder verzió ====
export class LoginComponent implements OnInit {
loginForm !: FormGroup;
constructor(private formBuilder: FormBuilder) { }
ngOnInit(): void {
this.loginForm = this.formBuilder.group({
email: ['', [Validators.required, Validators.email]],
password: ['', Validators.required]
})
}
}
===== Segítő szöveg =====
==== Angular 12.x ====
==== Angular 13.x ====
===== Rövidítés =====
//...
export class LoginComponent implements OnInit {
loginForm !: FormGroup;
constructor() { }
ngOnInit(): void {
this.loginForm = new FormGroup({
email: new FormControl('', Validators.required),
password: new FormControl('')
})
}
get email(){return this.loginForm.controls['email']}
}
E-mail kötelező
E-mail kötelező