如何验证输入类型=" text"角度2的最大长度问题

时间:2018-02-20 11:09:47

标签: angular angular2-forms angular2-directives

我的要求是如果输入字段超过maxlength,则显示maxlength错误消息。

这适用于输入类型编号。如果输入字段超过maxlength,则显示错误消息。

这不适用于输入类型文本字段。错误消息未显示,而是限制用户输入的值多于给定的maxlength。

有谁能建议我解决这个问题。

谢谢你, Java4you。

1 个答案:

答案 0 :(得分:1)

我建议使用ReactiveForms并将验证器设置为max-length。

在你的模块中:

import { ReactiveFormsModule } from '@angular/forms'
...
@NgModule({
   imports: [
       ...
       ReactiveFormsModule
   ]
   .....
})

然后转到你的组件并注入formbuilder

import { FormBuilder } from '@angular/forms';
...
export class MyFormComponent {
   public fb: FormGroup;
   public constructor(private formBuilder: FormBuilder) {
       this.fb = this.formBuilder.group({
           myControlWithMaxLength: ['', Validators.maxLength(128)]
       });
   }
}

现在在您的模板中执行以下操作

<form [formGroup]="fb" novalidate>
   <input type="text" formControlName="myControlWithMaxLength" />
   <span *ngIf="fb.controls['myControlWithMaxLength'].hasError('maxLength')">Max length is 128!</span>
</form>

为了保持模板清洁,您可以在组件中编写getter。