2014-10-02 12 views
15

Vorrei impedire all'utente di fare clic sul pulsante "Registra" se i campi non sono corretti. Parte di questo è che alcuni campi devono essere riempiti. Ma la condizione sta iniziando a diventare un po 'lunga:Disabilitare un pulsante se almeno un campo di input è vuoto utilizzando ngDisabled

<button class="btn btn-success" ng-click="register()" 
    ng-disabled="signInForm.$invalid || form.firstName.length==0 || 
    form.lastName.length==0 || form.email.length==0 || 
    form.password.length==0 || form.passwordBis.length==0">Register</button> 

Come posso semplificare?

+1

Hai solo bisogno di fornire 'attributo required' per tutti gli ingressi e fare'

risposta

25

Penso che sia necessario fornire l'attributo required per i campi di input all'interno del modulo, quindi fino a quando i campi non saranno compilati nel modulo signInForm non saranno validi. Allo stesso modo potresti fornire anche altri attributi di validazione sugli input.

Esempio: -

<input type="text" ng-model="firstName" name="firstName" required /> 
    <input type="text" ng-model="lastName" name="lastName" required /> 
    <input type="email" ng-model="email" name="email" required /> 
    ... 
    ... 
    <button class="btn btn-success" ng-click="register()" 
      ng-disabled="signInForm.$invalid">Register</button> 
+0

Sembra che tu abbia ragione: http://jsfiddle.net/mgmp6L0b/ Ma nel mio caso non funziona ... Sembra che io non stia usando il stesso framework ... Ho AngularJS v1.2.25 e l'e-mail: "toto @ to" è valido nel mio codice e non nell'esempio JSFiddle sopra. Inoltre richiesto nel mio codice non modifica il comportamento ... Qualsiasi pensiero ? – Elfayer

+0

Non posso accedere al violino, puoi incollare in un plunkr. ug con modello di convalida della posta elettronica ... – PSL

+0

Capisco cosa stai dicendo, il tuo problema ha più a che fare con la validazione dell'email html5 e con l'angular Se fai lo stesso nella demo nella documentazione ufficiale, vedrai lo stesso. https://docs.angularjs.org/api/ng/input/input%5Bemail%5D Puoi usare il tuo pattern fornendo 'ng-pattern' – PSL

Problemi correlati