AngularJS Form Validation Directive $setValidity on element

67,834

I figured it out... You have to have a name on the input elements. As soon as I added the name, the errors were automatically bound to the elements as desired, no additional changes needed!

<input ng-model="password"
       name="inputPassword"
       class="immediate-help"
       password-validate
       required
       type="password"
       id="inputPassword"
       placeholder="Password">

http://jsfiddle.net/thomporter/pmKpG/4/

Share:
67,834
Thom Porter
Author by

Thom Porter

Visit my website for more info about me: www.thomporter.com

Updated on September 29, 2020

Comments

  • Thom Porter
    Thom Porter almost 4 years

    I'm trying to use $setValidity on an element in a directive. All the examples I've found seem to set it on the controller...

    I forked a JS fiddle on Form Validation and have tried a bunch of things. Any insights would be most appreciated: http://jsfiddle.net/thomporter/pmKpG/2/

    In the fiddle, the $setValidity is called on the controller:

    ctrl.$setValidity('pwd', true);
    

    I'd like to do something like:

    elm.$setValidity('pwd', true);
    

    so that in the form I can do something like:

    ng-class="{error:form.password.$error.pwd}"