• required 必填字段
  • minlength 字段最小长度
  • maxlength 字段最大长度
  • pattern 验证正则 例如:pattern=”\d” 匹配一个数值

    1. <form #f="ngForm" (submit)="onSubmit(f)">
    2. <input type="text" name="username" ngModel required pattern="\d" />
    3. <button type="submit" [disabled]="f.invalid">提交</button>
    4. </form>
    1. export class AppComponent {
    2. onSubmit(form: NgForm) {
    3. // 查看表单整体是否验证通过
    4. console.log(form.valid)
    5. }
    6. }

    在组件模板中显示表单项未通过时的错误信息

    1. <form #f="ngForm" (submit)="onSubmit(f)">
    2. // #username 是自定义的模板变量名称,ngModel 是固定的
    3. <input #username="ngModel" name="username" ngModel required minlength="2" maxlength="6">
    4. <div>{{ username.errors | json}}</div>
    5. // username.touched 用户操作了
    6. <div *ngIf="username.touched && !username.valid && username.errors">
    7. <div *ngIf="username.errors['required']">请填写用户名</div>
    8. <div *ngIf="username.errors['minlength']">用户名最少{{ username.errors['minlength'].requiredLength }}</div>
    9. </div>
    10. <button type="submit">提交</button>
    11. </form>

    指定表单项未通过验证时的样式

    1. input.ng-touched.ng-invalid {
    2. border: 2px solid red;
    3. }