2017-10-03 9 views
0

フォームの検証時に、ユーザーが入力、チェックボックスなど()に触れたかどうかを確認できます。バリデーターにビルドがあり、ユーザは少なくとも1回は各入力に触れなければならない(タブオーバーなど)。ユーザーが各入力に触れたことを確認します

背景:私は、入力が正しいことを確認する必要があるチェックボックス付きフォームを持っています。

<form name="form" role="form" class="form-horizontal" novalidate #form="ngForm"> 
    <div class="form-group"> 
     <label class="col-sm-2 control-label">Checkbox Label</label> 
     <div class="col-sm-10 checkbox"> 
      <label class="i-checks"> 
       <input type="checkbox" name="checkboxLabel" id="checkboxLabel" [(ngModel)]="checkboxLabel"><i></i> 
      </label> 
      <div [hidden]="form.controls.checkboxLabel?.touched"> 
       Checkbox not touched 
      </div> 
     </div> 
    </div> 
</form> 
+1

に動作します。その後、変更を形成するためのリスナーを追加します触れた? –

+0

正確には、私はそれも自分の指示を介して行うことができると思う... – Stefan

+0

フォームグループを使用することができます。すべてのフィールドをグループに入れ、マップチェックタッチ要素を使用するかどうかを指定します。この例では、すべてのフィールドをタッチします。しかし、あなたはすべてのフィールドをチェックする方法と、似たように触れた状態で見ることができます。 https://stackoverflow.com/a/45743406/6474811 –

答えて

0

次のように試してみてください、それらをチェックしたい、虚偽でそれらを初期化同じサイズを持つチェックボックスの作成に使用されているものの横にもfalseが設定されています)。チェックボックスが変更されるたびに、その配列値をtrueに変更します。あなたは、すべてのチェックボックスをチェックする必要はありませんが、すべての必要性があることをすることを必要としないことを意味し

@ViewChild('myForm') myForm: NgForm; 
myForm: NgForm; 
.... 
ngOnInit() { 
    this.myForm.valueChanges.subscribe((value: any) => { 
     console.log("One of the checkbox was touched"); 
     // here check if the all values of array are true 
    }); 
} 

ない「賢い」ソリューションが、

+0

私のチェックボックスはforeach文で作成されているので、これは実際には私の選択肢ではありません。 – Stefan

0

あなたはすべての値を持つ並列アレイを(保つことができる:チェックボックスは2つの状態しか持つことができますので、私は、しかし、私は、ユーザーが少なくとも一度

+0

@Roma Skydanタグは角があり、どこにもanglejsがありませんポスト... – Vega

関連する問題