2012-10-12 20 views
25

Lo que intento hacer es habilitar el botón de enviar Si todos los cuadros de texto contienen valores en ellos. Deshabilite el botón de enviar de lo contrario. Pero el problema aquí es que el número de cuadros de texto puede variar (dinámico), así que no puedo codificar los modelos en el atributo ng-disabled.¿Cómo se puede alternar el estado del botón en angular.js?

Esto es lo que he probado hasta ahora: http://jsfiddle.net/codef0rmer/6uKAT/

¿Hay algún otro método que debería seguir?

Respuesta

74

Este es el basic idea.

<form name="myForm"> 
    Item1: <input ng-model="item1" required/><br/> 
    Item2: <input ng-model="item2" required/><br/> 
    Item3: <input ng-model="item3" required/><br/> 
    <button type="submit" ng-disabled="myForm.$invalid">Submit</button> 
</form> 
+0

Eso es definitivamente una oportunidad, pero en mi caso el botón de enviar ($ rootScope) no viene bajo el mismo controlador que el de los cuadros de texto. – codef0rmer

+0

No debería importar, siempre que el formulario ajuste todas las entradas que desea ver para desactivar el envío. –

+0

gracias @blesh funciona gr8. –

4

Quiere usar la validación. http://docs.angularjs.org/api/ng.directive:form

Ponga todo el campo de entrada con atributos required, luego cualquier elemento de entrada vacío sería que invalidaría el formulario. Si no es válido, deshabilite el botón con ng-disable.

Cuestiones relacionadas