Angular JS Tutorial

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:

ConceptDescription
ng-modelInput рдХреЛ рдХрд┐рд╕реА variable рд╕реЗ bind рдХрд░рддрд╛ рд╣реИ
requiredField рдХреЛ рднрд░рдирд╛ рдЬрд╝рд░реВрд░реА рдмрдирд╛рддрд╛ рд╣реИ
type="email" / "number"Field рдореЗрдВ type-specific validation
ng-patternCustom regex pattern рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
formName.inputName.$validField рдХреА рд╡реИрд▓рд┐рдбрд┐рдЯреА рдЪреЗрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
CSS classesAuto-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-validField valid рд╣реИ
ng-invalidField invalid рд╣реИ
ng-pristineField untouched рд╣реИ
ng-dirtyUser рдиреЗ field рдХреЛ change рдХрд┐рдпрд╛ рд╣реИ
ng-touchedUser рдиреЗ 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)

  1. AngularJS рдореЗрдВ form validation рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
  2. ng-pattern рдХрд╛ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рд╣реИ?
  3. рдиреАрдЪреЗ рджрд┐рдП рдЧрдП 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 рдХрд░реЗрдВ!