私は非常に大きなフォームを持ち、いくつかのセクションが別々のフォームグループとして表されています。各セクションの終わりに、私はすべての入力にぼかしをかけるAngular2 Reactive Forms
checkValidity(g: FormGroup) {
Object.keys(g.controls).forEach(key => {
g.get(key).markAsDirty();
});
Object.keys(g.controls).forEach(key => {
g.get(key).markAsTouched();
});
}
を次のようにこれまでのところそれはそれは正常に動作しますが、私の一般的なバリデータをチェックしているためと検証メッセージを処理し、そのフォームグループ内のすべてのコントロールの有効性をチェックチェックボタンを持っています各コントロールの入力ブラーイベントでは、コントロールのフォーカスとブラーの後まで、検証メッセージ自体はポップアップしません。だからフォームグループの各フォームコントロールでブラーイベントをトリガーする上記のメソッドに何かを追加したいと思いますが、私はそれをどうやって行うのか理解できませんでした。
document.getElementById( "myAnchor")。blur(); W3Schoolsから、idで要素を取得して、それをblur()のようにトリガする方法を示します。上記の方法を使用すると、ForEachを使用してFormGroup内のすべての要素にアクセスして、すべての要素をぼかすことができますか? (入力、テキストエリア、ラジオボタン、チェックボックス)
ご注意ください。
あなたは 'document.activeElement.blur()'を試すことができます – yurzui
FormGroupのすべての要素をトラバースする方法はありますか? – David
いいえ、FormGroupには要素への参照がありません。彼らは橋を介して接続されています。 1つの方法は猿のパッチを適用することです – yurzui