Donnez vie à vos documents numériques !
 

Utiliser le même script sans le modifier

abracadabraPDF Forums PDF – Général Utiliser le même script sans le modifier

  • Créateur
    Sujet
  • #72287
    michel c.
    Participant

    Bonjour, je suis en train de créer un exercice dans lequel mes élèves pourront voir la question suivante seulement si toutes les réponses précédentes sont exactes.

    (dans le document joint il n’y a que 2 questions mais il y en aura une dizaine dans mon formulaire lorsqu’il sera terminé)

    Mon script affecté au bouton de vérification est assez simple :

    //numéro de la question
    var n=1

    for (var a = 1 ; a<5 ; a++) {
    this.getField("Q"+n+"."+a).readonly = true;
    if (this.getField("Q"+n+"."+a).value != 0) {this.getField("Q"+n+"."+a).fillColor = color.white;}
    if (this.getField("Q"+n+"."+a).value === 0) {this.getField("Q"+n+"."+a).fillColor = color.red;
    this.getField("Q"+n+"."+a).readonly = true;
    this.getField("Erreurs.1").display = display.visible;;}

    if (this.getField("Q"+n+"."+1).value != 0 && this.getField("Q"+n+"."+2).value != 0 && this.getField("Q"+n+"."+3).value != 0 && this.getField("Q"+n+"."+4).value != 0) {
    this.getField("Bravo.1").display = display.visible;
    this.getField("Masque."+n).display = display.hidden;}
    }

    Il fonctionne pour la question 1 qui comporte 4 champs de réponses mais je devrais le modifier pour la question 2 qui ne comporte que 3 champs de réponses et ainsi de suite.

    Je voudrais savoir s’il serait possible d’utiliser un seul et même script pour chaque question dans lequel j’affecterai simplement la variable relative au numéro de la question. Il me manque pour cela un code qui me permettrait de compter le nombre de champs de  réponses pour chaque question.

    Ceci me ferait gagner un temps précieux.

    Je ne sais pas si je suis assez clair dans la formulation de ma question.

    Merci

    Merci

    • Ce sujet a été modifié le il y a 3 semaines et 5 jours par michel c..
    Attachments:
    You must be logged in to view attached files.
Affichage de 7 réponses de 1 à 7 (sur un total de 7)
  • Auteur
    Réponses
  • #72290
    michel c.
    Participant

    J’ai réussi à faire un peu mieux (j’ai des modifications minimes à faire sur mon script). Je pense qu’il est possible de faire mieux mais je bloque toujours sur le moyen de compter le nombre de champs de réponses pour chaque question.

    Il faudrait un code qui me permettrait de compter tous les champs qui commencent par « Q »+n+ ». »

    Si quelqu’un a une idée. En attendant, je vais me coucher. apparemment la nuit porte conseil.

    Merci

    Attachments:
    You must be logged in to view attached files.
    #72292
    bebarth
    Maître des clés
    bonjour,

    Il faudrait un code qui me permettrait de compter tous les champs qui commencent par « Q »+n+ ». »

    Voici ce que tu peux écrire :
    var nbChamps=0;
    for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf("Q"+n+".")==0) nbChamps++;
    }
    console.println("Nombre de champs Q"+n+". : "+nbChamps);

    @+
    😎

    #72293
    Merlin
    Maître des clés

    Bonjour et bonne année

     

    Tu n’as pas besoin de compter ces champs, il suffit de les prendre en compte seulement s’ils existent.

     

    if (this.getField("Q"+n+"."+1) != null && //etc

    #72294
    bebarth
    Maître des clés

    Voici donc ma proposition :
    function verifier(n) {
    var nbChamps=0;
    for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf("Q"+n+".")==0) nbChamps++;
    }
    var erreurs=0;
    for (var a=1; a<=nbChamps; a++) {
    this.getField("Q"+n+"."+a).readonly=true;
    if (this.getField("Q"+n+"."+a).value!=0) {
    this.getField("Q"+n+"."+a).fillColor=color.white;
    } if (this.getField("Q"+n+"."+a).value==0) {
    this.getField("Q"+n+"."+a).fillColor=color.red;
    erreurs++;
    }
    }
    if (!erreurs) {
    this.getField("Bravo.1").display=display.visible;
    this.getField("Masque."+n).display=display.hidden;
    } else {
    if (erreurs==1) this.getField("Erreurs.1").value="Il y a une erreur.";
    else this.getField("Erreurs.1").value="Il y a "+erreurs+" erreurs.";
    this.getField("Erreurs.1").display=display.visible;
    }
    }

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #72299
    michel c.
    Participant

    Merci pour votre aide. J’ai pu modifier et même améliorer un peu plus mon document grâce à vous.

    J’ai placé les réponses exactes dans des champs masqués en vis à vis des champs de réponse. Ainsi ce sera plus facile de créer les formulaires que je souhaite.

    J’ai l’impression que ce n’est pas trop mal là. Je n’ai pas vu de bug en tout cas.

    • Cette réponse a été modifiée le il y a 3 semaines et 4 jours par michel c..
    #72303
    Merlin
    Maître des clés

    👍

    #72304
    michel c.
    Participant

    Le dernier fichier en date (un peu plus pratique encore à l’usage)

    Attachments:
    You must be logged in to view attached files.
Affichage de 7 réponses de 1 à 7 (sur un total de 7)
  • Vous devez être connecté pour répondre à ce sujet.