2017-10-18 7 views
2

J'ai deux champs f.e.forme angulaire 4 gabarit gabarit - marque d'un champ secondone touché

<form #f="ngForm" novalidate (ngSubmit)="save(f.value, f.valid)"> 
<div> 
    <label>Name</label> 
    <input type="text" name="name" [(ngModel)]="user.name" #name="ngModel" required minlength="5"> 
    <label>Street</label> 
    <input type="text" name="street" [(ngModel)]="user.surname" #surname="ngModel" required> 
</div> 
<button type="submit">Submit</button></form> 

Je veux marquer l'un de ces champs de seconde fois que touché, c'est possible? j'ai essayé d'utiliser (ngModelChange) = « surname.control.markAsTouched (true) » sur le nom pour marquer le nom comme touché, mais cela ne fonctionne pas

Répondre

2

(ngModelChange) fonctionnera lorsque vous modifiez la première valeur d'entrée, vous pouvez utiliser (blur) à marquer le deuxième touché quand le premier est.

<input type="text" name="name" [(ngModel)]="user.name" #name="ngModel" 
    (ngModelChange)="surname.control.markAsTouched()" required minlength="5"> 
<input type="text" name="street" [(ngModel)]="user.surname" #surname="ngModel" required> 
{{surname.touched | json}} 
<button type="submit">Submit</button> 

Demo Plunker