Donnez vie à vos documents numériques !
 

Affichage d’un champ de texte si un code est saisi

abracadabraPDF Forums PDF – Général Affichage d’un champ de texte si un code est saisi

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46619
    michel c.
    Participant

    Bonjour, je souhaiterais qu’un champ soit affiché lorsque le bon code est saisi par l’utilisateur avec également une boite de dialogue qui s’ouvre pour dire que le code est bonSi le code est faux une boite de dialogue s’ouvre pour dire qu’il est faux et le champ de saisi se remet à 0..
    Voici mon code :.

    Code:
    var code = 1024;
    var cSaisie = (this.getField(“codesaisi”).value);

    if (cSaisie = code) {
    app.alert({cMsg:”code ok”, nIcon:1});
        this.getField(“bravo”).display = display.visible;
    }

    else {
    app.alert({cMsg:”code faux”, nIcon:1});
        this.getField(“codesaisi”).value = 0;
        this.getField(“bravo”).display = display.hidden;
    }

    .
    .et le fichier :.Test3.
    .
    Merci

Affichage de 9 réponses de 1 à 9 (sur un total de 9)
  • Auteur
    Réponses
  • #69348
    michel c.
    Participant

    Avec ce code ça à l’air de marcher :

    Code:
    var cSaisie = Number(this.getField(“codesaisi”).value);

    if (cSaisie == 1024) {
    app.alert({cMsg:”code ok”, nIcon:1});
        this.getField(“bravo”).display = display.visible;
    }

    else {
    app.alert({cMsg:”code faux”, nIcon:1});
        this.getField(“codesaisi”).value = 0;
        this.getField(“bravo”).display = display.hidden;
    }

    Je ne sais pas pourquoi cela ne marchait pas avec le précédent…

    #69349
    Merlin
    Maître des clés

    Bonjour

    La différence c’est :

    if (cSaisie = 1024) {
    if (cSaisie == code) {

    = signifie “devient égal à”,
    == signifie “est égal à”.

    Voir : https://developer.mozilla.org/fr/docs/conflicting/Web/JavaScript/Reference/Operators_03cb648b1d07bbaa8b57526b509d6d55

    #69350
    michel c.
    Participant

    Merci pour le lien, je m’endormirais moins bête.
    Autre question en passant : y a-t-il un moyen d’éviter les répétitions de ce style :

     

    Code:
    this.getField(“c1”).display = display.visible;
        this.getField(“c2”).display = display.visible;
        this.getField(“c3”).display = display.visible;
        this.getField(“c4”).display = display.visible;
        this.getField(“c5”).display = display.visible;
        this.getField(“c6”).display = display.visible;
        this.getField(“c7”).display = display.visible;

    En cherchant sur le forum, je viens de tester ça :

    Code:
    var i = 0;
    for (i=0 ; i this.getField(“c” +i ).display = display.visible;

    Mais sans grand succès
    Test4
    Merci

    #69351
    Merlin
    Maître des clés

    Les champs sont nommés : c1 à c7
    Mais la boucle commence à zéro…  :tutut:

    Par ailleurs, il me semble bien qu’il ne faut pas utiliser d’opérateur double ( ) dans les boucles for

    Essaie plutôt ça :

    for (var i = 1; i 8; i++) {
    this.getField(“c” +i ).display = display.visible;
    }

    #69352
    michel c.
    Participant

    ça marche très bien, merci.

    #69353
    Merlin
    Maître des clés

    Si tu ne veux pas que le script cesse de fonctionner quand il rencontre un nom de champ qui n’existe pas il faut lui ajouter une protection :

    for (var i = 1; i if (this.getField(“c” +i ) != null) {
    this.getField(“c” +i ).display = display.visible;
    }
    }

    #69354
    michel c.
    Participant

    C’est pour le cas de figure ou je supprimerais un des champs c* ? Ce qui empêcherait le script de tourner ?

    #69355
    Merlin
    Maître des clés

    Oui, un script non protégé s’arrête de fonctionner dès qu’il rencontre une erreur.
    C’est ce qui t’es arrivé avec le script que tu as posté : le compte de la boucle for commençait à zéro mais il n’y a pas de champ “c0”, donc le script s’arrête là.

    Si tu avais activé la Console JS tu aurais vu le message d’erreur. Voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/console-javascript-d-acrobat/

    #69356
    michel c.
    Participant

    En réalité j’utilise PDF X-Change editor qui était moins cher pour notre établissement (scolaire). Il y a une console mais je ne l’avais jamais utilisée, je vais m’y mettre…

Affichage de 9 réponses de 1 à 9 (sur un total de 9)
  • Vous devez être connecté pour répondre à ce sujet.