Donnez vie à vos documents numériques !
 

Equivalent script pour masque arbitraire AA

abracadabraPDF Forums PDF – Général Equivalent script pour masque arbitraire AA

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46055
    alp
    Membre

    Bonsoir,

    Après des heures de recherches je me résous à poser ma question en espérant qu’elle ne l’a pas déjà été (promis j’ai cherché !!)

    Je cherche à forcer un champs en “AA” et avoir une tabulation automatique au champs suivant une fois qu’il est rempli.
    Je sais faire le premier en utilisant le masque arbitraire dans “format>spécial”
    Je sais également faire le 2 en utilisant dans format>personnalisé le script (trouvé grâce à ce forum)

    Code:
    if (event.value.length >= 1)
    {this.getField(“champ_suivant”).setFocus();}

    Mais impossible donc de faire les 2 en même temps puisque je ne peux pas faire à la fois un format spécial et un format personnalisé 😭
    La solution est sans doute de remplacer le masque arbitraire par un script équivalent mais j’ai beau chercher je n’ai pas trouvé.

    Quelqu’un aurait-il une solution ? :priere:

    Je précise que je dois ensuite faire la même chose en forçant un champs “9”

    Merci beaucoup par avance car là….. :mur:

    Al

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

    Bonjour et bienvenue.

    Ton script est le bon, à un chiffre et à un opérateur près.
    if (event.value.length >= 1)
    Ça veut dire : si le champ contient au moins 1 caractère (1 ou plusieurs).

    Mais toi ce que tu veux c’est changer le focus dès qu’il y a plus de 2 caractères. ce qui nous donne :

    if (event.value.length > 2)
    {this.getField(“champ_suivant”).setFocus();}

    À placer en script de format (en script de touche personnalisé) ou bien en script de validation. (Je n’ai pas testé).
    Et tu n’as peut être plus besoin du masque arbitraire (selon ce à quoi il sert).

    :Smiley15:

    #65652
    bebarth
    Maître des clés

    bonsoir,
    Perso, j’avais compris que le champ “AA” devait avoir un masque arbitraire pour 2 lettres majuscules, d’où mon script :

    Code:
    if(!event.willCommit) {
        var valeurEntree = event.value.split(“”);
        valeurEntree.splice(event.selStart, event.selEnd-event.selStart, event.change);
        var testeChaine = valeurEntree.join(“”);
        var expReg = /^[A-Z]{0,2}?$/;
        event.rc = expReg.test(testeChaine);
        var laLettre=event.change;
        if (event.value.length>=2) {
            this.getField(“autreChamp”).setFocus();
            this.getField(“autreChamp”).value=laLettre;
        }
    } else {
      var expReg = /^[A-Z]{0,2}?$/;
      event.rc = (event.value == “”) || expReg.test(event.value);
    }

    Par contre, vu que j’ai toujours eu du mal avec “event”, je n’arrive pas à valider le premier caractère dans l’autreChamp et donc lorsque qu’on tape un autre caractère ça efface le premier…
    Idem pour le champ “9” qui pour moi signifiait un chiffre.
    Voir fichier joint pour mieux comprendre…
    Si Merlin (ou quelqu’un d’autre) tu as la solution, ça m’intéresse…
    @+
    :bonjour:

    #65653
    Merlin
    Maître des clés

    Voir les scripts de format dans le ci-joint.
    Ça fonctionne mais je ne comprend pas pourquoi la valeur limite de length doit être décalée de moins 2…
    :Euuuh:  :doute:

    Ma seule certitude c’est que là tout de suite, je n’ai pas le temps de creuser plus avant.
    :Smiley15:

    #65654
    bebarth
    Maître des clés

    bonjour Merlin,
    Cétait déjà le cas avec les premières lignes que tu avais donné…

    if (event.value.length > 2)
    {this.getField(“champ_suivant”).setFocus();}

    … et je n’ai pas compris non plus pourquoi ???
    @+
    :bonjour:

    #65655
    Merlin
    Maître des clés

    Je déclare officiellement lancé le “JavaScript challenge du mystère de Pâques 2019“.
    À vos cellules grises !

    :geek:  :Smiley03:

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