2016-04-16 7 views
2

Ich versuche ein Eingabefeld vom Typ Nummer als nicht leer zu validieren. Die Validierung ist erfolgreich, obwohl sie leer ist.Validierung der Eingabe der Typennummer funktioniert nicht korrekt in Angular2

Wenn das Eingabefeld Text hat, ist der Text erfolgreich. Hier ist ein Beispiel, das beiden Fälle verbindet:

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

Im vorherigen Beispiel, auch wenn ich eine Nummer einfügen und dann lösche ich die Fehlermeldung „Name erforderlich ist“ wird nicht angezeigt.

Antwort

1

Update

Dies wurde in beta.16 https://github.com/angular/angular/blob/master/CHANGELOG.md#200-beta16-2016-04-26

original

Es fixiert ist ein bekanntes Problem, dass die erforderliche Validator nicht richtig für <input type="number">

See funktioniert auch

+0

Vielen Dank für die prompte Rückmeldung. Ich denke, die offizielle Dokumentation von Angular2 sollte aktualisiert werden, um dies zu erwähnen! Ist der gleiche Mangel an Unterstützung auch für die anderen HTML5-Typen, wie z. B. Datum usw. (http://www.w3schools.com/html/html_form_input_types.asp)? Gibt es einen Plan, um es zu unterstützen? –

+0

Ich denke, das soll fixef statt dokumentiert werden. –