代码之家  ›  专栏  ›  技术社区  ›  anon

当用户在Angular 6中键入时更改输入字段文本

  •  0
  • anon  · 技术社区  · 6 年前

    这是密码

    <mat-form-field>
      <input matInput (change)="changedInput()" placeholder="MAC address" name="mac_address" required [(ngModel)]="model.mac_address" (blur)="validate()">
      <mat-error *ngFor="let error of errors_by_field['mac_address']">{{error.message}}</mat-error>
      <span>{{formatedMac}}</span>
    </mat-form-field>
    
    changedInput() {
      const blocks = this.model.mac_address.match(/.{1,2}/g);
      this.formatedMac = blocks.shift();
      for (const block of blocks) {
        this.formatedMac = this.formatedMac + ':' + block;
      }
    }
    

    1 回复  |  直到 6 年前
        1
  •  3
  •   Guerric P    6 年前

    你曾经 [(ngModel)] ,所以你键入的所有内容 model.mac_address 你对程序的每一次修改 model.mac\u地址 进入你的输入。

    那么试试这个:

    <mat-form-field>
      <input matInput (change)="changedInput()" placeholder="MAC address" name="mac_address" required [(ngModel)]="model.mac_address" (blur)="validate()">
      <mat-error *ngFor="let error of errors_by_field['mac_address']">{{error.message}}</mat-error>
      <span>{{model.mac_address}}</span>
    </mat-form-field>
    
    changedInput() {
      const blocks = this.model.mac_address.match(/.{1,2}/g);
      let formattedMac = blocks.shift();
      for (const block of blocks) {
        formattedMac  = formattedMac  + ':' + block;
      }
      this.model.mac_address = formattedMac;
    }