Skip to content

$data.invalidate

Description

Signale une erreur de validation d'un champ.

La méthode permet de déclarer qu'un champ ne respecte pas une règle de validation implémentée au niveau d'un script, comme le fait l'élément <validation> de la descript.

Alternative

La méthode est en réalité un raccourci pour un appel à $msg.error, $msg.warn ou $msg.info avec une source forcée à "validation".

Il est d'ailleurs possible de retrouver les erreurs de validation à l'aide de la méthode $msg.get("error").

Syntaxe

$data.invalidate( expression [ , message [ , options ] ] )

Paramètres

expression string / map
Expression de contexte permettant d'identifier le champ concerné
message string
Texte d'explication concernant l'erreur détectée. Le texte étant destiné à l'utilisateur final, il doit être fourni dans la bonne langue. Utiliser $i18n.getLabel pour obtenir des libellés à partir des bundles de ressources de l'application.
options map

Options supplémentaires concernant la forme du message

level string
Type de message. Les valeurs reconnues sont error, warn et info. Toute autre valeur est considérée comme error. Si non défini, le type par défaut est error.
attributes map
Map d'attributs à associer au message dans l'arbre de sortie. On pourra par exemple spécifier un attribut disableOutputEscaping pour indiquer à la feuille de style de désactiver l'échappement des caractères spéciaux (pour autant que le message ne présente pas de risque d'injection XSS).

Retour

Retourne un tableau contenant le contexte des champs que le moteur a réussi à identifier et pour lesquels l'invalidation a réussi. Les contextes repris dans la réponse sont au format map.

Exemple

1
2
3
4
5
$data.invalidate("nom");

$data.invalidate([ "nbreFemmes", "nbreHommes" ],
                 $i18n.getLabel("message.donnee.nbreFemmesHommes.manquante",
                                { bundle: "messages" }));

Discussion

Du point de vue de l'output, le même résultat que le 2e exemple ci-dessus pourrait être obtenu avec le code suivant. La seule différence est que la valeur de retour de la méthode n'est pas la même.

1
2
3
4
$msg.error($i18n.getLabel("message.donnee.nbreFemmesHommes.manquante",
                          { bundle: "messages" }),
           { target: [ "nbreFemmes", "nbreHommes" ],
             source: "validation" });