¿Cuál es la diferencia entre required
y ng-required
(validación de formulario)?
Los elementos de formulario AngularJS buscan el required
atributo para realizar funciones de validación. ng-required
le permite establecer el required
atributo en 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é es así (y no solo make <input required="true">
o <input required="false">
), se debe a las limitaciones de HTML: el required
atributo no tiene ningún valor asociado; su mera presencia significa (según los estándares HTML) que el elemento es necesario. entonces angular necesita una forma de establecer / desarmar el valor requerido ( required="false"
sería HTML no válido)
<form method="post" action="/foo" novalidate>
. Nuevamente, este es un atributo html5, no relacionado con angularJS.ng-required
apunta a una variable de alcance / controlador, Angular la monitorea en busca de cambios y establece el atributo requerido en consecuencia. Mientras que en el caso delrequired
atributo HTML simple no tienes ese tipo de flexibilidad. ¿No? Y mientras estamos en el mismo tema, ¿qué pasang-attr-required
? ¿Es exactamente lo mismo queng-required
?Me gustaría hacer un complemento para la respuesta de tiago :
Suponga que está ocultando un elemento usando
ng-show
y agregando unrequired
atributo en el mismo:arrojará un error algo como:
Esto se debe a que simplemente no puede imponer la
required
validación a loshidden
elementos. ¡El usong-required
facilita la aplicación condicional de la validación requerida, que es simplemente increíble!fuente
ng-if
lugar deng-show
/ng-hide
para esquivar ese problema potencial.El atributo HTML
required="required"
es una declaración que le dice al navegador que este campo es obligatorio para que el formulario sea válido. (required="required"
es la forma XHTML, solo usarrequired
es equivalente)El atributo Angular
ng-required="yourCondition"
significa 'isRequired (yourCondition)' y establece el atributo HTML dinámicamente para usted según su condición.También tenga en cuenta que la versión HTML es confuso , es que no es posible escribir algo como condicional
required="true"
orequired="false"
, sólo la presencia de los asuntos de atributos (medios actuales cierto)! Aquí es donde Angular te ayudang-required
.fuente