代码之家  ›  专栏  ›  技术社区  ›  Mathis Garberg

maxlength属性的角度验证消息

  •  12
  • Mathis Garberg  · 技术社区  · 8 年前

    问题

    文本区域代码

    <textarea maxlength="10"
              [(ngModel)]="title.value"
              #title="ngModel"></textarea>
    

    <div *ngIf="title.errors && (title.dirty || title.touched)"
          class="alert alert-danger">
        <div [hidden]="!title.errors.maxlength">
          Only 10 characters allowed.
      </div>
    </div>
    

    如果你想让我提供任何其他信息,请告诉我。

    2 回复  |  直到 8 年前
        1
  •  15
  •   Mohamed Ali RACHID    8 年前

    您可以使用反应式表单来正确验证您的表单, 下面是一个简单的示例,说明如何使用反应形式:

    import { Component, OnInit } from '@angular/core';
    import { FormBuilder, FormGroup, Validators } from '@angular/forms';
    
    @Component({
      selector: 'title-form',
      template: `
        <form novalidate [formGroup]="myForm">
          <label>
            <span>Full title</span>
            <input type="text" placeholder="title.." formControlName="title">
          </label>
          <div*ngIf="myForm.controls['title'].touched && myForm.get('title').hasError('required')">
            Name is required
          </div>
          <div *ngIf="myForm.controls['title'].touched && myForm.controls['title'].hasError('maxlength')">
            Maximum of 10 characters
          </div>
        </form>
      `
    })
    export class TitleFormComponent implements OnInit {
      myForm: FormGroup;
      constructor(private fb: FormBuilder) {}
      ngOnInit() {
        this.myForm = this.fb.group({
          title: ['', [Validators.required, Validators.maxLength(10)]],
        });
      }
    
    }
    

    希望它能帮助你:)

        2
  •  8
  •   Vega Stipe    5 年前

    可以通过直接在输入长度上设置条件来实现。带有*ngIf的span标记可以显示/隐藏错误消息:

    <textarea class="form-control" id="title"  
    type="number" name="title" [(ngModel)]="titleModel"></textarea> 
    <span style="color:red" *ngIf="titleModel?.length > 10">
          10 max
    </span>
    

    类别:

      titleModel = 'I have more than 10 characters'
    

    ... DEMO