チェックボックスのチェックを要求する
2023-11-22 06:56:50
質問する
Angular用のFormBuilderを使って、チェックボックスがチェックされるまでボタンを無効にしたいです。チェックボックスの値を明示的にチェックしたくないので、バリデーターを使用して、単純に
form.valid
.
以下の両方の検証ケースにおいて、チェックボックスは
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);
}
}
どのように解決するのですか?
.ts
@Component({
selector: 'my-app',
template: `
<h1>LOGIN</h1>
<form [ngFormModel]="loginForm" #fm="ngForm" (submit)="doLogin($event)">
<input type="checkbox" id="cb" ngControl="cb" #cb="ngForm" required>
<button type="submit" [disabled]="!loginForm.valid">Log in</button>
<br/>
<div>Valid ={{cb.valid}}</div>
<div>Pristine ={{cb.pristine}}</div>
<div>Touch ={{cb.touched}}</div>
<div>form.valid?={{loginForm.valid}}</div>
<BR/>
<BR/>
</form>
`,
directives: [ROUTER_DIRECTIVES,FORM_DIRECTIVES,CORE_DIRECTIVES]
})
export class Login {
constructor(fb: FormBuilder) {
this.loginForm = fb.group({
cb: [false, Validators.required],
//cb: ['',Validators.required] - this will also work.
});
}
doLogin(event) {
console.log(this.loginForm);
event.preventDefault();
}
}
働くプランカー .
何か変更が必要な場合はお知らせください。
関連
-
[解決済み] チェックした後に○○の表現が変わっている
-
[解決済み] Angular ReactiveForms。チェックボックスの値の配列を生成する?
-
[解決済み] パイプ ' ' が見つかりません。
-
[解決済み] タイプスクリプト タイプ X はタイプ Y の length、pop、push、concat、その他 26 のプロパティが欠落しています。[2740]
-
[解決済み] 遅延のあるobservableを作成するには?
-
[解決済み] Angular 2で入力タグのファイルタイプで選択されたファイルをリセットする方法は?
-
[解決済み] FormGroupとFormArrayの使い分けは?
-
[解決済み] ExpressionChangedAfterItHasBeenCheckedError: チェックされた後に、式が変更されました。以前の値: 'undefined'
-
[解決済み] Angularのビルドと実行方法
-
[解決済み] APIレスポンスからレスポンスヘッダを読み取る - Angular 5 + TypeScript
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Angular 4/5/6 グローバル変数
-
[解決済み] Angular Materialでのデフォルトのソート - ヘッダーのソート
-
[解決済み] Angular 4+ ngOnDestroy() サービス中 - observableを破壊する
-
[解決済み] trackBy` と `ngFor` の使い方
-
[解決済み] タイプスクリプト タイプ X はタイプ Y の length、pop、push、concat、その他 26 のプロパティが欠落しています。[2740]
-
[解決済み] Angular2 DIRECTIVEは要素の既知のプロパティではないので、バインドできません。
-
[解決済み] Angular2 formGroupに値を設定する
-
[解決済み] Angular cli - ng serve時の自動リロードを無効にする方法
-
[解決済み] Angular2 *ngIf テンプレート内のオブジェクト配列の長さをチェックする
-
[解決済み] 親コンポーネントのangular2呼び出し関数