angularjs - have - ¿Cuál es la diferencia entre requerido y ng requerido?
ng controller angular 4 (3)
El atributo HTML required="required"
es una declaración que indica al navegador que este campo es obligatorio para que el formulario sea válido. ( required="required"
es el formulario XHTML, solo usar required
es equivalente)
El atributo Angular ng-required="yourCondition"
significa ''isRequired (yourCondition)'' y establece el atributo HTML dinámicamente para usted dependiendo de su condición.
También tenga en cuenta que la versión HTML es confusa , no es posible escribir algo condicional como required="true"
o required="false"
, solo importa la presencia del atributo (presente significa verdadero). Aquí es donde Angular te ayuda con ng-required
.
¿Cuál es la diferencia entre required
y ng-required
(validación de formulario)?
Los elementos de formulario AngularJS buscan el atributo required
para realizar funciones de validación. ng-required
permite establecer el atributo required
función de una prueba booleana (por ejemplo, solo requiere el campo B, por ejemplo, un número de estudiante , si el campo A tiene un cierto valor, si seleccionó "estudiante" como opción )
Como ejemplo, <input required>
y <input ng-required="true">
son esencialmente lo mismo
Si se pregunta por qué esto es así (y no solo hace <input required="true">
o <input required="false">
), se debe a las limitaciones de HTML: el atributo required
no tiene un valor asociado. - su mera presencia significa (según los estándares HTML) que se requiere el elemento - por lo que angular necesita una forma de establecer / anular el valor required="false"
( required="false"
sería un HTML no válido)
Me gustaría hacer un complemento para la respuesta de tiago :
Supongamos que está ocultando el elemento utilizando ng-show
y agregando un atributo required
en el mismo:
<div ng-show="false">
<input required name="something" ng-model="name"/>
</div>
lanzará un error algo como:
Un control de formulario no válido con nombre = '''' no se puede enfocar
Esto se debe a que simplemente no puede imponer la validación required
en hidden
elementos hidden
. ¡Usar ng-required
hace que sea más fácil aplicar condicionalmente la validación requerida, que es simplemente increíble!