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.
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? –
Ich denke, das soll fixef statt dokumentiert werden. –