Angular2限制模板驱动表单中的特殊字符
我想限制文本框中的特殊字符。我的意思是,如果用户输入任何特殊字符,它们不应该显示在文本框中。在Angular 1中,您可以使用解析器来实现这一点。在Angular2中实现这一目标的最佳方式是什么 更新 为了达到预期的效果,我想出了这个办法Angular2限制模板驱动表单中的特殊字符,angular,Angular,我想限制文本框中的特殊字符。我的意思是,如果用户输入任何特殊字符,它们不应该显示在文本框中。在Angular 1中,您可以使用解析器来实现这一点。在Angular2中实现这一目标的最佳方式是什么 更新 为了达到预期的效果,我想出了这个办法 input type="text" [(ngModel)]="user.name" #name="ngModel" #ctrlName (onModelChange)="onChange('name')" onChange(field : strin
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,这意味着它不会从模型中删除。任何帮助都将不胜感激。不确定您是否可以限制数据的显示(我知道您可以),简单地使用角度和自定义可能更容易validators@Bwolfing但现在我使用的是模板驱动forms@sqlcte也许会有帮助?看起来您可以使用模板驱动进行自定义验证,只需要多一点work@Bwolfing它看起来不错,但我想限制用户输入特殊字符。我不想显示特殊字符。我想要的是在用户输入特殊字符时删除它,并相应地更新模型。请有人帮助。如果我不够清楚,你可以让我做得更清楚精心设计。