Page 1 sur 1

Reset d'un bouton radio sur le web

MessagePublié: 16 Déc 2009 à 10:43
par BenoitDuJura
Bonjour à tous,

je sollicite votre aide pour un problème que je n'arrive pas à résoudre.
Dans un masque en html, j'ai un champ de type radio button, possédant 4 valeurs possibles.
J'ai créé un bouton en javascript qui me permet de décocher les radios en cas d'erreur de saisie.
Le problème, si j'ai déjà enregistré le document avec une case cochée, j'ai beau décocher le radio button, à l'enregistrement, la valeur précédemment sauvegardé reste dans le document, elle n'est pas remise à zéro.

J'ai tenté de faire des elt.value="" dans ma fonction javascript en plus de décocher, mais rien n'y fait.

Avez-vous déjà été confronté à ce phénomène ?

MessagePublié: 16 Déc 2009 à 11:24
par STEVEDAVE69
Salut

Tu es sur que c est pas un problème de cache ?

Sinon utilise de l aJAX

MessagePublié: 16 Déc 2009 à 11:30
par Michael DELIQUE
salut

sur les bouton radio (comme sur les champs liste), le elt.value ne fonctionne pas il faut passer par elt.[i].checked

un exemple de traitement => http://forum.dominoarea.org/routine-de- ... 14608.html

MessagePublié: 16 Déc 2009 à 11:45
par BenoitDuJura
Michael DELIQUE a écrit:salut
sur les bouton radio (comme sur les champs liste), le elt.value ne fonctionne pas il faut passer par elt.[i].checked


C'est ce que je fais dans ma fonction js :
Code : Tout sélectionner
var elt = eval('document.forms[0].' + champ);
      for (i=0 ; i < elt.length; i++) {
         elt[i].checked = false;
      }

champ est une variable contenant le nom du champ.

Mais bon, j'ai rusé en utilisant un champ caché dans lequel je stocke une chaine particulière en cas de RAZ, et je traite ds le webquerysave.

Ajax, dans ce cas là, n'est pas envisageable. Si tu modifies le document par une requête ajax, et que tu lances le webquerysave ensuite, tu vas avoir un conflit.

MessagePublié: 16 Déc 2009 à 11:50
par kochiz
Bonjour,

Je comprends pas pourquoi tu es contrains de ruser :?

Tu n'aurais pas une valeur par défaut qui traîne.

MessagePublié: 16 Déc 2009 à 11:53
par BenoitDuJura
kochiz a écrit:Bonjour,

Je comprends pas pourquoi tu es contrains de ruser :?

Tu n'aurais pas une valeur par défaut qui traîne.


Non, je veux qu'aucune case ne soit cochée si je clique sur le bouton.
Ça marche à l'affichage, mais la valeur précédente reste stockée lors de l'enregistrement.
Essaye dans un masque sous web, tu verras.
Si jamais il fallait mettre une valeur par défaut, je n'aurais pas de problème.

MessagePublié: 16 Déc 2009 à 12:23
par kochiz
C'est donc un problème de sauvegarde de ton document sur ce champ en particulier. Tu le gères comment ton submit ?

MessagePublié: 16 Déc 2009 à 13:05
par BenoitDuJura
kochiz a écrit:C'est donc un problème de sauvegarde de ton document sur ce champ en particulier. Tu le gères comment ton submit ?


Oui, ce problème survient sur tous les champs de type radio, sur lesquels tu souhaites réinitialiser la valeur, alors que le document a été enregistré une fois avec une valeur pour ce champ.
Quand au submit, classique : document.forms[0].submit(); qui déclenche le webquerysave.

Le fait qu'il n'y ait aucune case de coché ne remet pas le champ à vide lors de l'enregistrement.
Mais bon, comme je le disais plus haut, je m'en suis sorti autrement.

MessagePublié: 16 Déc 2009 à 13:39
par kochiz
Je comprends bien ton souci mais du coup en plus du checked false pour gérer l'affichage tu dois aussi gérer la valeur associée au champ avec value pour effectivement sauvegarder la nouvelle valeur (vide).

MessagePublié: 16 Déc 2009 à 15:09
par BenoitDuJura
kochiz a écrit:Je comprends bien ton souci mais du coup en plus du checked false pour gérer l'affichage tu dois aussi gérer la valeur associée au champ avec value pour effectivement sauvegarder la nouvelle valeur (vide).


Je suis bien d'accord :lol:

j'ai donc ajouté dans mon code :
Code : Tout sélectionner
var elt = eval('document.forms[0].' + champ);
elt.value = '';
      for (i=0 ; i < elt.length; i++) {
         elt[i].checked = false;
         elt[i].value = '';
      }


J'ai même récupéré le champ en passant par
Code : Tout sélectionner
var elt = document.getElementById('monId');
elt.value = '';


rien n'y fait .... dès le déclenchement de l'enregistrement, la valeur stockée précédemment revient ...
Bizarre.

MessagePublié: 16 Déc 2009 à 15:11
par Michael DELIQUE
salut

de mémoire le sujet a déjà été abordé, fait une petite recherches

MessagePublié: 16 Déc 2009 à 15:35
par BenoitDuJura
Michael DELIQUE a écrit:salut

de mémoire le sujet a déjà été abordé, fait une petite recherches


C'est ce que j'ai fait avant de poster, mais je n'ai rien trouvé.
Je vais élargir mon champ de recherche alors.

EDIT: j'ai trouvé ça :
http://forum.dominoarea.org/radio-bouton-et-java-script-t23999,search_id,782767527.html
Et bien , je serais curieux de connaitre ta solution que tu ne peux pas poster sur le forum :D