1

即使我添加 maxLength="250" 我也可以在 agular2-material md-input中输入值。

在此处输入图像描述

  1. 无论如何我可以禁用输入字段在 250 个字符后输入文本。
  2. 有没有 maxLenth 的替代品。

我的表单输入是这样的:

<div class="form-group">
  <md-input type="text" required placeholder="Name" formControlName="name" #nameCountHint
            maxLength="250" class="full-width" dividerColor="{{changeForm.controls.name.valid ? 'primary': 'accent'}}">
    <md-hint align="end">{{nameCountHint.characterCount}} / 250</md-hint>
  </md-input>
  <agile-control-messages color="primary" [control]="teamForm.controls.name"></agile-control-messages>
</div>

任何帮助都会很棒。

4

1 回答 1

1

我找到了这个关于如何进行验证的简单演示,也许它可以帮助你。

组件模板:

 <form [ngFormModel]="someFormHandle" 
            [(ngSubmit)="onSubmit()">

            <input class="form-control"
                   [ngFormControl]="someNumber">

            <button class="btn btn-primary" 
                    [disabled]="!someFormHandle.valid">
                    Submit
            </button>
 </form>

零件:

@Component({
  selector: 'some-form',
  templateUrl: './some-form.component.html',
  directives: [FORM_DIRECTIVES]
})
export class SomeForm implements OnInit {

  someFormHandle:ControlGroup;
  someNumber:AbstractControl;

  constructor(private formBuilder:FormBuilder) {
  }

  divisibleByTen(control:Control) {
      return parseInt(control.value) % 10 == 0 ? null : {
        divisibleByTen: true
      }
  }

  onSubmit(){
    //Some submit logic
  }

  ngOnInit():void {
    this.someFormHandle = this.formBuilder.group({
      'someNumber': ['', Validators.compose([Validators.required, 
                                             Validators.maxLength(250), 
                                             this.divisibleByTen])]
    });

    this.someNumber = this.someFormHandle.find('someNumber');
  }

}
于 2016-11-08T08:29:38.240 回答