2015-05-27 15 views
5

loginForm.$valid è sempre restituito true, anche se i campi richiesti non sono compilati. Non sono stato in grado di trovare un problema simile ovunque.La convalida del modulo AngularJS è sempre true

<form name="loginForm" 
     class="form-login" 
     ng-submit="loginForm.$valid && loginCtrl.login(navCtrl)" 
     novalidate> 

    <div class="form-group"> 
     <label for="email">Username:</label> 
     <input type="email" class="form-control" id="username" placeholder="Enter username" required> 
    </div> 

    <div class="form-group"> 
     <label for="pwd">Password:</label> 
     <input type="password" class="form-control" id="pwd" placeholder="Enter password" required> 
    </div> 

    <div class="form-group text-right"> 
     <a href="#">Forgot password?</a> 
    </div> 
    <div>Login form is {{loginForm.$valid}}</div> 
    <button type="submit" class="btn btn-default">Login</button> 
</form> 

Qualsiasi aiuto è apprezzato.

risposta

9

La convalida del modulo e i relativi flag vengono impostati solo se si dispone dei controller ng-model assegnati ai rispettivi controlli. Quindi assegnare loro la direttiva ng-model. Inoltre, anziché utilizzare id, è possibile utilizzare name. Verrà quindi utilizzato come alias (nome delle proprietà) per il rispettivo controller del modello ng assegnato nell'istanza formController (ad esempio: loginForm.username.$valid).

<div class="form-group"> 
     <label for="email">Username:</label> 
     <input type="email" class="form-control" 
     ng-model="ctrl.userName" 
     name="username" placeholder="Enter username" required> 
    </div> 

    <div class="form-group"> 
     <label for="pwd">Password:</label> 
     <input type="password" class="form-control" 
      ng-model="ctrl.password" 
      name="pwd" placeholder="Enter password" required> 
    </div> 
+2

Ha funzionato, grazie; tuttavia, ora il modulo non è mai valido neanche con entrambi i campi compilati. E: Non importa, non stavo inserendo un'e-mail valida. Scusate! – cohenadair

+0

@ Coh3n Certo .. ha risolto il tuo problema? – PSL

+1

Sicuramente, grazie mille. :-) – cohenadair

Problemi correlati