Angular2限制模板驱动表单中的特殊字符

时间:2017-03-17 14:24:04

标签: angular

我想限制textbox中的特殊字符。我的意思是如果用户输入任何特殊字符,它们不应该显示在文本框中。在Aangular 1中,你可以通过使用解析器来实现。在Angular2中实现这一目标的最佳方法是什么。

更新 为了达到预期的效果,我想出了这个。

input type="text" [(ngModel)]="user.name" #name="ngModel" #ctrlName     (onModelChange)="onChange('name')"

onChange(field : string){
    this.user["field"] = this.user["field"].replace(/[^\w\s]/gi, '');
}

但这并没有更新控件值,所以我修改了它,如下所示

input type="text" [(ngModel)]="user.name" #name="ngModel" #ctrlName (onModelChange)="onChange('name',ctrlName)"

onChange(field : string,ctrl : FormControl){
    var value = this.user["field"].replace(/[^\w\s]/gi, '');
    this.user["field"] = value;
    ctrl.value = value; 
}

但是现在当我输入一个特殊字符时,它会从输入中删除但如果我测试它的所需字段有效性如name.valid,则结果为true,这意味着它不会从模型中删除。任何帮助都会很多赞赏。

0 个答案:

没有答案
相关问题