Donnez vie à vos documents numériques !
 

Répondre à : Changement de champs basé sur différentes sélections (Combo Box). – RÉSOLU

abracadabraPDF Forums PDF – Général Changement de champs basé sur différentes sélections (Combo Box). – RÉSOLU Répondre à : Changement de champs basé sur différentes sélections (Combo Box). – RÉSOLU

#53908
Merlin
Maître des clés
Code:
(function () {
   
var a = getField(« Module_code »).value;
   
if (a === 0) {event.target.value = «  »};

if (a === 1) {event.target.value = util.printf(« %.2f », 33.33) +  » % »}; // j’affiche simplement 33 % si

if (a === 2) {event.target.value = util.printf(« %.2f », 20) +  » % »};

if (a === 3) {event.target.value = util.printf(« %.2f », 16.67) +  » % »};

if (a === 4) {event.target.value = util.printf(« %.2f », 12.5) +  » % »};

if (a === 5) {event.target.value = util.printf(« %.2f », 11.11) +  » % »};

if (a === 6) {event.target.value = util.printf(« %.2f », 9.09) +  » % »};

})();

C’est normal que ça ne fonctionne pas :

– le champ Module_code n’a pas de valeurs d’exportation associées aux intitulés.
Donc soit il faut en mettre une, soit il faut utiliser la valeur de l’intitulé (Y1H3 par ex.),

– il ne faut pas placer ce code en fonction c’est le meilleur moyen pour qu’il ne se déclenche pas,

– la vérification d’égalité c’est == et non pas === (il est possible que ce soit correct aussi mais dans le doute…),

– il manque les guillemets autour des valeurs testées,

– il faut placer this. devant getField,

– qu’attends tu de « util.printf » ???

Le code devrait donc plutôt ressembler à ca :

var a = this.getField(« Module_code »).value;
if (a == « 0 ») {event.target.value = «  »};
if (a == « 1 ») {event.target.value = « 33.33 % »};
if (a == « 2 ») {event.target.value = « 20 % »};
if (a == « 3 ») {event.target.value =  » % »};
if (a == « 4 ») {event.target.value = « 12.5 % »};
if (a == « 5 ») {event.target.value = « 11.11 % »};
if (a == « 6 ») {event.target.value = « 9.09 % »};

Ou bien à ça :

var a = this.getField(« Module_code »).value;
if (a == « Y1H3 ») {event.target.value = «  »};
if (a == « Y2H4 ») {event.target.value = « 33.33 % »};

etc.

et ce code, affiche tout le temps, meme sans aucune selection: « Can begin next level »  ???

Code:
var nMarksTotal = this.getField(« MarksTotal »).value;
if ( nMarksTotal == ‘100’ ) event.target.value = « Awarded »;
  else if ( nMarksTotal >= ’70’ || nMarksTotal   else if ( nMarksTotal   else event.target.value = «  »;

pourrait tu m’éclairer un peu plus, merci

C’est normal que ça ne fonctionne pas là aussi : le champ MarksTotal exécute un script de validation qui ajoute systématiquement «  % » (espace-pourcentage) à la valeur de ce champ.
Donc cette valeur ne peut jamais correspondre puisque tu recherches des valeurs sans espace et sans pourcentage…
:oh:

Quand je t’avais indiqué le script pour ajouter espace-pourcentage, je t’avais mis en garde contre les conséquences que pouvait avoir la modification du formatage du résultat d’un calcul, surtout si cette valeur doit être  ré-utilisée ensuite.
Je t’avais encouragé à utiliser un pourcentage « en dur » (soit du texte sur la page, soit dans un champ à part et verrouillé en lecture seule) et à laisser la valeur du calcul telle quelle.
:Smiley15: