2017-10-03 6 views
0

양식의 유효성을 검사 할 때 사용자가 입력을 터치했는지 여부, 확인란 등 (X.touched)을 확인할 수 있습니다. 유효성 검사기에 빌드가 있는지, 사용자가 각 입력을 적어도 한 번 터치해야합니다 (탭 오버 등).해당 사용자가 각 입력을 터치했음을 확인하십시오.

배경 : 입력란이 올바른지 확인해야하는 체크 박스가있는 양식이 있습니다. 체크 박스는 두 개의 상태를 가질 수 있기 때문에, 나는 그러나 나는 사용자가이를 확인하려면, 허위로 init을 적어도 한 번

+1

을 작동하지만 모두가해야 만졌어? –

+0

정확히, 그리고 나는 그것도 자신의 지시어를 통해 이루어질 수 있다고 생각합니다 ... – Stefan

+0

양식 그룹을 사용할 수 있습니다. 모든 필드를 그룹에 넣은 다음 맵 검사 요소를 사용할지 여부를 결정합니다. 이 예에서는 모든 필드를 터치합니다. 그러나 모든 필드를 확인하고 비슷한 조건으로 접촉하는 방법을 볼 수 있습니다. https://stackoverflow.com/a/45743406/6474811 –

답변

0
이 같은

시도 :

<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> 
+0

내 체크 박스가 foreach 문으로 작성된 이래로 이것은 실제로 나를위한 옵션이 아닙니다. – Stefan

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

@Roma Skydan 태그가 각도이며 아무 곳에도 표시되지 않습니다. 게시물 ... – Vega