2016-04-16 7 views
2

タイプ番号の入力フィールドを空でないものとして検証しようとしています。検証は成功しますが、それは空です。タイプ番号の入力の検証がAngular2で正しく機能しない

入力フィールドにタイプのテキストがある場合は成功します。前の例では

@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> 

私は番号を挿入し、その後、私はそれにエラーメッセージ「名前が必要です」と表示されていないを削除しても:ここでは両方のケースを組み合わせた例があります。

答えて

1

更新

これは、それが必要なバリデータが<input type="number">

参照してください。正常に動作しないことが知られて問題だbeta.16 https://github.com/angular/angular/blob/master/CHANGELOG.md#200-beta16-2016-04-26

で修正されました

+0

プロンプトフィードバックをいただき、ありがとうございます。 Angular2の公式文書はこれを言い換えるために更新されるべきだと私は思う!日付など(http://www.w3schools.com/html/html_form_input_types.asp)など、他のHTML5タイプについてもサポートが不足していますか?それをサポートする計画はありますか? –

+0

私はそれがドキュメント化されているのではなくfixefを取得するはずだと思います。 –

関連する問題