Donnez vie à vos documents numériques !
 

Auto-tab d’un champ à un autre quand le nombre de carac maxi est atteint

abracadabraPDF Forums PDF – Général Auto-tab d’un champ à un autre quand le nombre de carac maxi est atteint

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45626
    vahns
    Membre

    Bonjour

    Je voudrais savoir comment faire deux choses:

    Vérifier le nombre de caractère saisis (numérique ou alpha numérique)
    Je fais un test sur la valeur saisie
    via « Executer le script de validation personnalisé »
    var a = this.getField(« Numero compte »);
    a = a.value;
    app.alert(a);
    if(a app.alert(« Vous devez saisir les 11 caractères du N° de compte »);
    }
    Cela ne fonctionne pas du tout comme je le souhaite
    Cela fonctionne si le numéro ne commence pas par un ou plusieurs 0
    Cela ne prends pas toujours la dernière valeur saisie, comme si il gardait l’avant dernière valeur en cache
    Je sèche ….

    Seconde difficulté

    Je voudrais pouvoir passer directement à la zone suivante lorsque le nombre maximal de car est saisi

    Merci de votre aide

    Vincent

Affichage de 5 réponses de 1 à 5 (sur un total de 5)
  • Auteur
    Réponses
  • #62436
    bebarth
    Maître des clés

    bonjour,
    Tu devrais trouver les réponses à tes questions dans ce post :
    http://abracadabrapdf.net/forum/index.php/topic,3213.0.html
    Sinon, dans le fichier joint.
    @+
    :bonjour:

    #62437
    vahns
    Membre

    Bonjour et merci pour votre réponse

    Pour passer d’un champs à un autre, j’ai réussi coucicouca à le faire grâce à ce code placé dans
    Format Personnalisé
    puis script de touches personnalisé
      if (AFMergeChange(event).length >10)
      {
      app.beep();
        this.getField(« Autre »).setFocus();
      }

    //if ( event.fieldFull || event.willCommit )

    Là il passe bien au champs suivant après avoir atteint le nombre maximum de caractère prévu
    Toutefois impossible de le garder à l’endroit où il a été saisi, la zone est vide

    Avez vous une idée?

    en utilisant votre script, je rencontre un pb, quand je passe au champs suivant, le dernier caractère saisi n’est pas pris en compte

    exemple
    champs 1 à 4 car
    champs 2 à 4 car

    lorsque l’on saisit sur le champs 1
    12345
    à 5 il passe dans le champs suivant sans commencer à saisir le 5 dans le champs 2

    Je suis complètement perdu et je vous remercie de passer du temps sur mon cas

    Vincent

    #62438
    vahns
    Membre

    Bonjour

    « Là il passe bien au champs suivant après avoir atteint le nombre maximum de caractère prévu
    Toutefois impossible de le garder à l’endroit où il a été saisi, la zone est vide »

    Ce que je voulais dire par là
    C’est que Acrobat DC ne veut pas sauvegarder ce script, lorsque je le valide, il accepte, mais il a disparu et je ne peux donc plus l’éditer

    Merci de votre support

    #62439
    vahns
    Membre

    Bonjour
    :soleil:

    Merci bebarth pour ton temps

    Je modifierai bien le titre du post par « Passage auto d’un champ à un autre, qd le nombre de carac max atteint ».
    Promis je ferai un effort dans l’avenir.

    Je partage la solution que j’ai trouvée, en fait deux solutions :

    – La première si les champs sont en numérique
    Création d’une fonction : (à insérer en script de document)

    AutoTab

    Code:
    function AutoTab(doc, event, cNext)
    {
      // Call the built-in routine to allow numbers only.
      AFNumber_Keystroke(0, 0, 0, 0, «  », true);
      // If we’ve filled in the field completely, jump to the next one.
      if (event.rc && AFMergeChange(event).length == event.target.charLimit)
          doc.getField(cNext).setFocus();
    }

    Puis sur le champ concerné en script de Format de touche personnalisé :

    Code:
    AutoTab(this, event, « leNomDuProchainChamps »);

    Cela fonctionne à merveille.

    – La seconde dans le cas de champs en alphanumérique :

    Code:
    function tab_next(cNext) {
        // Move to next field if Enter key is pressed
        // or the user has clicked outside of the field
        // or if the number of character is the character limit
        if (event.willCommit || AFMergeChange(event).length === event.target.charLimit) {
            getField(cNext).setFocus();
        }
    }

    Puis sur le champs concerné en script de Format de touche personnalisé :

    Code:
    tab_next(« leNomDuProchainChamps »);

    Source Adaptation de ce post https://forums.adobe.com/thread/1422992

    Belle journée à tous.

    Le PDF modifié est en PJ

    #62440
    Merlin
    Maître des clés

    Je modifierai bien le titre du post par « Passage auto d’un champ à un autre, qd le nombre de carac max atteint ».
    Promis je ferai un effort dans l’avenir.

    Je n’ai changé que le 1er mot (clé).
    :bonjour:

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