Requerir una casilla de verificación para ser verificado
Quiero que se desactive un botón hasta que se haya marcado una casilla de verificación utilizando un FormBuilder para Angular. No quiero verificar explícitamente el valor de la casilla de verificación y preferiría usar un validador para poder simplemente verificarform.valid
.
En ambos casos de validación debajo de la casilla de verificación está
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);
}
}