I triying to display/hide my ng-messages div only when the field in target is dirty and contain an error...
I have this ng-messages wrapper :
<div class="alert-bloc red clearfix" data-icon="warning-white" ng-if="changePwd.$dirty" ng-hide="hideMe" ng-messages="changePwd.$invalid" ng-messages-multiple>
<div>
<p ng-message="required">Votre nouveau mot de passe est requis</p>
<p ng-message="minlength">Votre nouveau mot de passe est trop court</p>
<p ng-message="pattern">Votre nouveau mot de passe doit intégrer au moins une majuscule, une minuscule et un chiffre</p>
<p ng-message="different">{{ errorMsg }}</p>
<p ng-message="mirror">{{ errorMsg }}</p>
</div>
</div>
My form is :
<form role="form" name="changePwd" novalidate autocomplete="off">
<div>
<label>Votre ancien mot de passe :
<input type="password" name="o" ng-model="credentials.o" ng-change="controleChangePassword(credentials);" required onpaste="return false;"/>
</label>
</div>
<div ng-show="changePwd.o.$dirty">
<label >Votre nouveau mot de passe :
<input type="password" name="p1" ng-model="credentials.p1" ng-change="controleChangePassword(credentials);" ng-minlength="8" ng-pattern="/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{8,}$/" required onpaste="return false;"/>
</label>
<label>Confirmez votre nouveau mot de passe :
<div>
<input type="password" name="p2" ng-model="credentials.p2" ng-change="controleChangePassword(credentials);" required onpaste="return false;" />
</div>
</label>
</div>
<button type="button" ng-disabled="changePwd.$invalid || disabled" ng-click="updatePassword(credentials);">Valider</button>
</form>
In my case, the div ng-messages container showing when any field is $dirty
and when the form(changePwd) is $invalid
.
I would like the ng-messages show only when the focus field is dirty and invalid, not when the global form is dirty.
For example, when I start writing something in the inpu(o), the ng-messages showing...
Is there some thing I did wrong ?