2

タイプ番号の入力フィールドが空でないことを検証しようとしています。空ですが、検証は成功します。

入力フィールドのタイプが text の場合は成功します。両方のケースを組み合わせた例を次に示します。

@Component({
  ...
})
export class MyComponent {

  form: ControlGroup;
  name: Control;
  duration: Control;


  constructor(private _formBuilder: FormBuilder) {
      let thisComp = this;

      thisComp.name = new Control('', Validators.compose([Validators.required]));
      thisComp.duration = new Control('', Validators.compose([Validators.required]));

      thisComp.form = thisComp._formBuilder.group({
        name: thisComp.name,
        duration: thisComp.duration
      });

  }


  onSubmit() {
     ...
  }


}
<form [ngFormModel]="form" (submit)="onSubmit()" novalidate>


     <div>
         <label for="cntrlName">Name</label>
         <input id="cntrlName" ngControl="name" #name placeholder="Enter ..." name="name" type="text" minlength="1" maxlength="200">
         <div *ngIf="name.dirty && !name.valid && !name.pending">
            <p *ngIf="name.errors.required">Name is required.</p>
         </div>
     </div>


     <div>
         <label for="cntrlDuration">Duration (in minutes)</label>
         <input id="cntrlDuration" ngControl="duration" f#duration placeholder="Enter ..." name="duration" type="number">
         <div *ngIf="duration.dirty && !duration.valid && !duration.pending">
            <p *ngIf="duration.errors.required">Duration is required.</p>
         </div>
     </div>

</form>

前の例では、番号を挿入してから削除しても、「名前が必要です」というエラー メッセージは表示されません。

4

1 に答える 1

1

アップデート

これは beta.16 で修正されましたhttps://github.com/angular/angular/blob/master/CHANGELOG.md#200-beta16-2016-04-26

オリジナル

必要なバリデーターが正しく機能しないことは既知の問題です。<input type="number">

こちらもご覧ください

于 2016-04-16T18:07:38.013 に答える