Problème avec FieldStatus.DISABLED

Anthony Clergeot · le 18/01/17 à 11:09

Bonjour,

J'ai besoin de rendre un champ non éditable lors d'une inscription.
 Pour cela j'ai tester deux méthodes:

- Me servir de processFieldStatusMap(Data data, Member mbr, Map map) dans le dataController. Ainsi je rend mon champ non éditable: updateFieldStatusMap(map, "rendezvous", FieldStatus.DISABLED);

- Modifier le champ dans doEditInscription.jsp : <jalios:field name="rendezvous" formHandler="<%= formHandler %>" disabled="true">

Quelque soit la méthode, lorsque le formulaire s'affiche, le champ est bien désactiver et pré-remplie comme je le désire.

Mon problème est que lorsque je valide mon formulaire et que par exemple un champ obligatoire n'est pas rempli, le système l'indique comme il le faut, mais le champ rendez-vous n'est plus désactiver (donc il est devenu éditable) mais en plus il perd sa valeur. Même si tout est bien rempli du premier coup, quand je valide, le champ rendez-vous se vide (sa valeur disparait).

Y aurait-il un moyen de corriger cela, de laisser le champ désactivé et pré-rempli quand la page se recharge pour afficher un message ?

Je vous remercie par avance pour votre aide.

8 pts
Pierre MORIN · le 18/01/17 à 14:03

Bonjour,

En HTML, un champ "disabled" n'est pas envoyé par le navigateur au serveur.

Je vous invite plutôt à utiliser l'attribut readonly qui devrait répondre à votre besoin (même si, sur Firefox au moins, il semble qu'il ne s'affichera pas grisé).

 

Cordialement

#2

Bonjour,

Dans ce cas, si vous en avez la possibilité, rajoutez un champ input type="hidden" avec la valeur de votre champ pour que celle-ci soit bien envoyée au serveur.

Cordialement

Pierre MORIN · le 19/01/17 à 14:49
#3

Bonjour,

Je vous remercie pour votre réponse. J'ai utiliser la méthode de Kévin Moreau en premier et elle répond à mes besoins, mais je testerais la votre à l'occasion.

Bien cordialement.

Anthony Clergeot · le 20/01/17 à 12:34
#4

Bonjour,

Je n'ai pas beaucoup réfléchit avant de répondre : la mienne est moins pertinente, je dois l'avouer.

Cordialement

Pierre MORIN · le 20/01/17 à 14:10
1 pt
Kévin Moreau · le 19/01/17 à 16:17

Bonjour, 

Il est possible d'ajouter une option au <jalios:control> pour inclure le readonly

L'exemple ci-dessous est à adapter en fonction du type de votre champ. 

<jalios:control settings="<%= new TextFieldSettings().readonly() %>"/>
#1

Bonjour,

Je vous remercie pour votre réponse. Cela correspond à ce que je désirais.

Anthony Clergeot · le 20/01/17 à 12:35
1 pt