Bouton reset  (Lu 336 fois) Partager ce sujet Imprimer

1 B


michel c.  24 juin 2021 : 08:51

Bonjour, je suis en train de faire un formulaire dans lequel j'ai un bouton reset qui permet d'effacer les champs de texte et de mettre la valeur des checkbox à la proposition "? "



Test 08

Cela fonctionne correctement sauf pour la checkbox "repOp2" et je ne voie pas trop ou est le problème
Le script associé à ce bouton  :


var Nb0="";(this.getField("Number.1").value) = Nb0;
(this.getField("Number.2").value) = Nb0;
(this.getField("Number.3").value) = Nb0;
(this.getField("rep1").value) = "";
(this.getField("rep2").value) = "";
(this.getField("repOp1").value) = "?";
(this.getField("repOp2").value) = "?";
(this.getField("repOp1.1").value) = "?";
(this.getField("r1").value) = "";
(this.getField("r2").value) = "";
Merci

IP archivée


Merlin  24 juin 2021 : 12:02

Bonjour

Cette ligne :
this.getField("repOp1").value = "?";

Ne peut pas s'exécuter s'il existe un champ nommé repOp1.1

Et je suppose qu'il en va de même pour :
this.getField("repOp2").value = "?";

Mais pour en dire plus il faudrait voir ton document, ou un extrait.
Utilises tu la console JS pour voir les erreurs ?


IP archivée


bebarth  24 juin 2021 : 14:15

bonjour,
Cette ligne :
this.getField("repOp1").value = "?";
Ne peut pas s'exécuter s'il existe un champ nommé repOp1.1
Je ne comprends pas ! Il ne peut pas y avoir de champ nommé repOp1.1 si ce n'est pas un widget et donc la case cochée est celle dont une valeur d'exportation est "?".  :Euuuh:
@+
 :bonjour:

IP archivée


Merlin  24 juin 2021 : 17:57

On peut s'adresser au champ parent (repOp1) pour modifier certaines propriétés de tous les champs du groupe en même temps, par exemple la police ou la couleur.
Mais ça ne fonctionne pas avec "value", il faut s'adresser à chaque champ enfant en particulier.

IP archivée


bebarth  25 juin 2021 : 12:15

bonjour,
Pourtant dans l'exemple joint ça fonctionne !
Où alors je n'est pas compris...  :Euuuh:
@+
 :bonjour:

IP archivée


Merlin  25 juin 2021 : 16:29

C'est moi qui me suis emmelé dans mon explication, et je n'aurais pas dû parler de "widget" (je l'ai supprimé ci-dessus).

En fait ce qui n'est pas possible c'est ça :
(this.getField("repOp1").value) = "?";

(this.getField("repOp1.1").value) = "?";


S'il existe un champ nommé "repOp1.1" il ne peut pas y avoir dans le document un autre champ nommé "repOp1" car du coup ce nom est utilisé par le "champ parent virtuel", qui existe en tant qu'objet JavaScript mais pas sur une page.
Donc la première de ces deux lignes devrait ne pas fonctionner et renvoyer une erreur dans la console.

Du coup je suppose que c'est peut être le même problème qui se pose pour le champ "repOp2" puisque dans le script il n'y a pas cette ligne :
(this.getField("repOp2.1").value) = "?";

IP archivée


michel c.  29 juin 2021 : 14:27

Merci pour la réponse, j'ai pas mal tergiversé car même après avoir renommé mes checkbox, cela ne fonctionnait pas, j'ai dû faire ce que vous m'aviez expliqué précédemment :.
var positionMenu=this.getField("repOpi").currentValueIndices;
this.getField("operateur1").value=this.getField("repOpi").getItemAt(positionMenu,true);
this.getField("operateur2").value=this.getField("repOpi").getItemAt(positionMenu,true);
.
repOpi est une checkbox cachée, sur le choix "?" et operateur1&2 les checkbox que je souhaite initailiser.
En tout cas, tout marche à merveille maintenant...

IP archivée