AngularJS Validation
ЁЯУМ AngularJS Validation рдХреНрдпрд╛ рд╣реИ?
AngularJS рдЕрдкрдиреЗ built-in directives рдФрд░ Form states рдХреА рдорджрдж рд╕реЗ рдпрд╣ check рдХрд░рддрд╛ рд╣реИ рдХрд┐ user рдХрд╛ input рд╕рд╣реА рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдЖрд╕рд╛рди рднрд╛рд╖рд╛ рдореЗрдВ: AngularJS рдЦреБрдж рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ user рдиреЗ рдЬреЛ рдбрд╛рд▓рд╛ рд╡реЛ valid рд╣реИ рдпрд╛ invalid, рдФрд░ рдЙрд╕реА рдЕрдиреБрд╕рд╛рд░ real-time рдореЗрдВ feedback рджреЗрддрд╛ рд╣реИред
ЁЯОп AngularJS Validation рдХреЗ Features:
- тЬЕ Real-time input checking
- тЬЕ Error message show/hide
- тЬЕ Form submit control (
ng-disabled
) - тЬЕ Input status рдХреЗ рд▓рд┐рдП CSS classes (
ng-valid
,ng-invalid
, etc.)
ЁЯзй AngularJS Validation рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
Key Concepts:
Concept | Description |
---|---|
ng-model | Input рдХреЛ рдХрд┐рд╕реА variable рд╕реЗ bind рдХрд░рддрд╛ рд╣реИ |
required | Field рдХреЛ рднрд░рдирд╛ рдЬрд╝рд░реВрд░реА рдмрдирд╛рддрд╛ рд╣реИ |
type="email" / "number" | Field рдореЗрдВ type-specific validation |
ng-pattern | Custom regex pattern рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП |
formName.inputName.$valid | Field рдХреА рд╡реИрд▓рд┐рдбрд┐рдЯреА рдЪреЗрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП |
CSS classes | Auto-added: ng-valid , ng-invalid , ng-touched , etc. |
тЬЕ Example: Required Field Validation
<form name="myForm" novalidate>
Name:
<input type="text" name="username" ng-model="user.name" required>
<span ng-show="myForm.username.$touched && myForm.username.$invalid">
Name is required.
</span>
</form>
рдЬреИрд╕реЗ рд╣реА user input рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдЧрд╛ (blur), error message show рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╡реЛ рдЦрд╛рд▓реА рд╣реИред
тЬЕ Example: Email Validation
<form name="emailForm" novalidate>
Email:
<input type="email" name="userEmail" ng-model="user.email" required>
<span ng-show="emailForm.userEmail.$error.required && emailForm.userEmail.$touched">
Email is required.
</span>
<span ng-show="emailForm.userEmail.$error.email && emailForm.userEmail.$touched">
Invalid email address.
</span>
</form>
AngularJS рдЦреБрдж check рдХрд░рддрд╛ рд╣реИ рдХрд┐ input рдореЗрдВ valid email рд╣реИ рдпрд╛ рдирд╣реАрдВред
тЬЕ Example: Pattern Validation (Custom Regex)
<input type="text" name="username" ng-model="user.name"
ng-pattern="/^[A-Za-z]{3,10}$/" required>
<span ng-show="myForm.username.$error.pattern && myForm.username.$touched">
Name must be 3тАУ10 letters (AтАУZ only).
</span>
Custom regex рд╕реЗ рдЖрдк complex validation rules рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
тЬЕ Example: Disabling Submit Button
<button ng-disabled="myForm.$invalid">Submit</button>
рдЬрдм рддрдХ form valid рдирд╛ рд╣реЛ, submit button disable рд░рд╣реЗрдЧрд╛ред
тЬЕ AngularJS Auto-Adds These CSS Classes:
Class | рдХрдм рд▓рдЧрддреА рд╣реИ? |
---|---|
ng-valid | Field valid рд╣реИ |
ng-invalid | Field invalid рд╣реИ |
ng-pristine | Field untouched рд╣реИ |
ng-dirty | User рдиреЗ field рдХреЛ change рдХрд┐рдпрд╛ рд╣реИ |
ng-touched | User рдиреЗ field рдХреЛ blur рдХрд┐рдпрд╛ рд╣реИ |
ЁЯСЙ рдЗрди classes рдХреЛ рдЖрдк custom CSS рд╕реЗ style рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
тЬЕ Bonus: Live Validation Styling
input.ng-invalid.ng-touched {
border: 2px solid red;
}
input.ng-valid.ng-touched {
border: 2px solid green;
}
Input рдмреЙрд░реНрдбрд░ рдЕрдкрдиреЗ рдЖрдк рд▓рд╛рд▓ рдпрд╛ рд╣рд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ validation рдХреЗ рдЕрдиреБрд╕рд╛рд░ред
ЁЯза рдЕрднреНрдпрд╛рд╕ рдкреНрд░рд╢реНрди (Exercise)
- AngularJS рдореЗрдВ form validation рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
ng-pattern
рдХрд╛ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рд╣реИ?- рдиреАрдЪреЗ рджрд┐рдП рдЧрдП code рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?
<span ng-show="form.email.$error.email">Invalid email</span>
тЬЕ рдЖрдкрдиреЗ рдХреНрдпрд╛ рд╕реАрдЦрд╛?
- AngularJS Validation рдХреЗ built-in tools
- Required, email, pattern рдФрд░ custom validation
- CSS classes рдФрд░ visual feedback
- Submit button disable рдХрд░рдирд╛
- Error messages conditionally show рдХрд░рдирд╛
ЁЯОп рдЕрдм рдЖрдк AngularJS рдореЗрдВ powerful рдФрд░ user-friendly form validations рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ тАФ рдЬреЛ real-time рдореЗрдВ рдпреВрдЬрд╝рд░ рдХреЛ guide рдХрд░реЗрдВ!