Anfordern eines Kontrollkästchens, das überprüft werden soll
Möchte ich eine Schaltfläche deaktiviert, bis Sie eine checkbox aktiviert wurde mit einem FormBuilder für Eckige. Ich will nicht, um explizit zu überprüfen, den Wert der checkbox und bevorzugen ein validator so, ich kann einfach überprüfen form.valid
.
In beiden Fällen Validierung unten die checkbox
interface ValidationResult {
[key:string]:boolean;
}
export class CheckboxValidator {
static checked(control:Control) {
return { "checked": control.value };
}
}
@Component({
selector: 'my-form',
directives: [FORM_DIRECTIVES],
template: ` <form [ngFormModel]="form" (ngSubmit)="onSubmit(form.value)">
<input type="checkbox" id="cb" ngControl="cb">
<button type="submit" [disabled]="!form.valid">
</form>`
})
export class SomeForm {
regForm: ControlGroup;
constructor(fb: FormBuilder) {
this.form = fb.group({
cb: [ CheckboxValidator.checked ]
//cb: [ false, Validators.required ] <-- I have also tried this
});
}
onSubmit(value: any) {
console.log('Submitted: ', this.form);
}
}
InformationsquelleAutor der Frage nathasm | 2016-02-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
.ts
Arbeiten Plunker.
Bitte lassen Sie mich wissen, wenn irgendwelche änderungen notwendig sind.
InformationsquelleAutor der Antwort micronyks
Konnte man nur mit einem ValidatorPattern und überprüfen auf der rechten Seite (boolean) Wert:
und hier ist die Bindung:
InformationsquelleAutor der Antwort Mica
Seit 2.3.1 Winkel - können Sie
Prüfungen#requiredTrue
:Komponente:
Vorlage:
STACKBLITZ DEMO
InformationsquelleAutor der Antwort developer033
Fand ich, dass der Validator.erforderlich funktioniert nicht richtig für die Checkboxen.
Wenn Sie das Kontrollkästchen ein Kontrollkästchen und deaktivieren Sie es, die FormControl, wird immer noch als gültig, obwohl es deaktiviert ist. Ich denke, es wird nur geprüft, dass Sie es auf etwas, sei es wahr oder falsch ist.
Hier ist eine schnelle einfache Prüfung, die Sie hinzufügen können, um Ihre FormControl:
InformationsquelleAutor der Antwort Maxim
Habe ich diese wirklich einfache Beispiel:
In der Komponente:
In Ihre HTML:
InformationsquelleAutor der Antwort Valentin Bossi