2015-03-12 8 views
7

Ho un elemento che appare condizionatamente che è necessario compilare quando è visibile. (Utilizzando ng-richiesto)Un controllo di modulo non valido con nome = '' non è focalizzabile sull'elemento nascosto

Tuttavia, quando non è visibile, sto ottenendo il seguente errore:

An invalid form control with name='' is not focusable

Come forzo ng-necessaria per funzionare solo se elemento è visibile. Non voglio inserire novalidate nel modulo, perché se lo faccio, quando l'elemento è visibile, la convalida non si verifica.

+3

Se stai usando ng-hide, hai preso in considerazione l'uso di ng-if (che rimuove completamente l'elemento dal dom)? – Joao

risposta

8

In questo modo, utilizzando un valore booleano sia per ng-show e ng-required:

<form> 
    <input type="text" ng-show="displayCondition" ng-required="displayCondition"/> 
</form> 

Buona domanda - un sacco di gente non si rendono conto che il superamento false in ng-required disabilita la direttiva.

+2

Ottima risposta: ha funzionato come un fascino. Grazie mille. – KingKongFrog

+1

La risposta del commentatore è valida, ma dipende se si desidera che la chiave sia vuota (la mia soluzione) o inesistente (sua/sua) –

+0

Ottima risposta del tempo. –

2

L'ho risolto molto facilmente con l'uso di ng-if al posto di ng-show! Siamo solo ng-se. Quando non è visibile l'elemento non è più nel codice. Quindi il browser non lo convaliderà.

Problemi correlati