Après l'échec de la validation côté client d'un formulaire Trinidad affiche les messages d'erreur et met en surbrillance les étiquettes des entrées ayant échoué. Je dois mettre en évidence les champs de saisie eux-mêmes. Est-il possible de le faire en quelque sorte? La solution la plus désespérée à laquelle je pense est d'attacher js event listener sur l'événement DOMAttrModified sur les étiquettes, mais c'est vraiment un hack horrible.Comment surligner un champ de saisie avec erreur de validation avec Trinidad (JSF)?
0
A
Répondre
0
Nous avons finalement choisi un autre hack. Une fois le document chargé, nous remplaçons la fonction de trinidad par l'implémentation qui déclenche un événement après une validation échouée et ce hook boucle ensuite tous les messages de validation, recherchant l'identifiant de l'entrée avec error (et définissant son style). Laid, mais fonctionne. C'est l'illustration de cette idée en utilisant jQuery (juste un croquis, non testé):
$(window).load(function() {
//save original function for form submit
var originalSubmit = window.submitForm;
//replace function for form submit with custom implementation that triggers some event in case of validation failure
window.submitForm = function (form, doValidate, parameters, isPartial) {
var retval = originalSubmit(form, doValidate, parameters, isPartial);
if (!retval) {
$(window).trigger('failedFormValidations', [form, doValidate, parameters, isPartial]);
}
}
//bind a listener for failed validations which performs the desired behavior
$(window).bind('failedFormValidations', function(event, form, doValidate, parameters, isPartial) {
// reset all inputs to nonhighlighted state, then loop through all labels and hightlight inputs with error
});
}