Angular2 ngModel

时间:2016-06-21 15:54:17

标签: javascript angular

我有一个输入字段,我想在每次击键后验证输入。最后,我想在输入字段外单击时验证它(不确定要使用哪个DOM事件)。问题是输入是"滞后"一个角色背后。

例如,如果用户输入" a",则将其映射到的等号""的ngModel变量。当他们输入" ab"时,变量等于" a"。

create-item.component.ts

的部分代码
export class CreateItem {
  public item: Item;

  constructor() {
    this.item = new Item();
  }

  onCheckItemInput() {
    // validate input on each keystroke
  }
}

create-item.component.html

的输入字段
<input class="form-control" type="text" required [(ngModel)]="item.name"
  #spy pattern=".{3,255}" (input)="onCheckItemInput()">

我做错了什么?

3 个答案:

答案 0 :(得分:2)

只要用户失去对输入元素的焦点,就会触发blur事件。

示例:用户在输入框外单击。

<input class="form-control" type="text" required [(ngModel)]="item.name"
#spy pattern=".{3,255}" (blur)="onCheckItemInput()">

我已经创建了一个简单的plunker来演示这个

https://plnkr.co/edit/4wnanssu08WPRziMkh9d?p=preview

答案 1 :(得分:0)

要在键入时更改,您可以使用(keydown)

<input class="form-control" type="text" required [(ngModel)]="item.name"
  #spy pattern=".{3,255}" (keydown)="onCheckItemInput()">

答案 2 :(得分:0)

如果要在用户单击输入字段外部时验证输入,并使用(ngModelChange)事件(如果要验证每次击键),则可以使用(更改)事件。