Quelle est la différence entre required
et ng-required
(validation de formulaire)?
Les éléments de formulaire AngularJS recherchent l’atsortingbut required
pour exécuter les fonctions de validation. ng-required
vous permet de définir l’atsortingbut required
fonction d’un test booléen (par exemple, ne nécessite que le champ B – par exemple, un numéro d’élève – si le champ A a une certaine valeur – si vous avez sélectionné “étudiant” comme choix )
Par exemple, et
sont essentiellement la même chose
Si vous vous demandez pourquoi , (et pas seulement ou
), cela est dû aux limitations de HTML – l’atsortingbut
required
n’a pas de valeur associée – sa simple présence signifie (selon les normes HTML) que l’élément est requirejs – donc angular a besoin d’un moyen de définir / de supprimer la valeur required="false"
( required="false"
serait un code HTML non valide)
Je voudrais faire un addon pour la réponse de tiago :
Supposons que vous masquez element en utilisant ng-show
et en ajoutant un atsortingbut required
sur le même:
va lancer une erreur comme:
Un contrôle de formulaire non valide avec name = ” ne peut pas être mis au point
C’est parce que vous ne pouvez pas imposer la validation required
sur les éléments hidden
. Utiliser ng-required
facilite l’ application conditionnelle de la validation requirejse, ce qui est tout simplement génial !!
L’ atsortingbut HTML required="required"
est une instruction indiquant au navigateur que ce champ est requirejs pour que le formulaire soit valide. ( required="required"
est le formulaire XHTML, utiliser simplement required
est équivalent)
L’ atsortingbut angular ng-required="yourCondition"
signifie “isRequired (yourCondition)” et définit l’atsortingbut HTML de manière dynamic en fonction de votre condition.
Notez également que la version HTML est déroutante , il n’est pas possible d’écrire quelque chose de conditionnel comme required="true"
ou required="false"
, seule la présence de l’atsortingbut est importante (présent signifie vrai)! C’est là que Angular vous aide avec ng-required
.