Donnez vie à vos documents numériques !
 

Texte conditionnel en fonction d’une case

abracadabraPDF Forums PDF – Général Texte conditionnel en fonction d’une case

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45846
    libac
    Membre

    Bonjour,

    J’ai encore un autre problème à vous soumettre :D

    On prend deux case texte.
    J’ai une case texte « A » ou l’on doit rentrer un nombre positif mais pas forcément entier.
    Dans la deuxième case texte « B » je souhaite afficher un autre nombre en fonction de la case A.

    Si valeur case A comprise entre 5 et 50  :fleche: alors case B = 12
    Si valeur case A comprise entre 50 et 500 :fleche: alors case B = 6
    Si valeur case A supérieur à 500  :fleche: alors case B = 3

    J’ai pas du tout les syntaxes de JS, je pense que c’est possible, si vous avez du temps pour éclairer ma lanterne  :idee: .
    Merci 

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

    Oui c’est possible mais le JavaScript est beaucoup plus précis que l’esprit humain et il va falloir affiner : le 50 et le 500 ne peuvent pas se trouver dans deux conditions différentes.

    On va donc avoir besoin du 51 et du 501 ou du 49 et du 499, ou bien du inférieur/supérieur ou égal, mais toi seul sait lesquels et où les mettre.
    Une fois ces précisions apportées, le script sera facile à écrire.

    #63823
    libac
    Membre

    D’accord je comprend, en ce cas :

    Si valeur case A <5  :fleche: alors case B on affiche "/" un trait pour dire que il y a rien
    Si valeur case A =>5 et <50  Fleche.gif alors case B = 12
    Si valeur case A =>50  <500 Fleche.gif alors case B = 6
    Si valeur case A =>500  Fleche.gif alors case B = 3

    Voila  :bonjour:

    #63824
    Merlin
    Maître des clés

    À placer en action champ désactivé dans le champ A :

    Code:
    var oChamp = this.getField(« B »); // mise en variable du champ B
    if (event.target.value < 5) {oChamp.value = "u002F";} // 1er cas
    else if (event.target.value >= 5 && event.target.value < 50) {oChamp.value = 12;} // 2e cas
    else if (event.target.value >= 50 && event.target.value < 500) {oChamp.value = 6;} // 3e cas
    else if (event.target.value >= 500) {oChamp.value = 3;} // 4e cas
    else {oChamp.value = «  »;} // tous les autres cas (NaN, pas de valeur…)

    u002F c’est de l’Unicode, voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/pdf-javascript-et-unicode/

    #63825
    libac
    Membre

    Merci ! ça fonctionne mais ça me créer un problème. Ma case A est calculer avec calcul (multiplication) ducoup j’ai mis le code dans validation et ça fonctionne mais un coup sur deux, étrange  :oh:

    Tiens je te laisse regarder

    #63826
    Merlin
    Maître des clés

    À placer en script de calcul dans le champ B :

    Code:
    var oChamp = this.getField(« A »); // mise en variable du champ A
    if (oChamp.value < 5) {oChamp.value = "u002F";} // 1er cas
    else if (oChamp.value >= 5 && oChamp.value < 50) {event.target.value = 12;} // 2e cas
    else if (oChamp.value >= 50 && oChamp.value < 500) {event.target.value = 6;} // 3e cas
    else if (oChamp.value >= 500) {event.target.value = 3;} // 4e cas
    else {event.target.value = «  »;} // tous les autres cas (NaN, pas de valeur…)

    Attention à l’Ordre de calcul !

    #63827
    libac
    Membre

    Salut, merci ! J’ai trouver en même temps une combine qui fonctionne par moi même :
    [
    if (this.getField(« equit »).value < 5) {
    event.value =  »  / »
    }
    if (this.getField(« equit »).value >= 5 && this.getField(« equit »).value <50) {
    event.value =  12
    }
    if (this.getField(« equit »).value >= 50 && this.getField(« equit »).value <500) {
    event.value =  6
    }
    if (this.getField(« equit »).value > 500) {
    event.value =  3
    }
    ]

    C’est un peut de la bidouille mais ça marche :D

    #63828
    Merlin
    Maître des clés

    J’ai trouver en même temps une combine qui fonctionne par moi même :

    C’est la même chose, sans mise en variable.  :Smiley03:

    event.value

    Pour le coup ça ne semble pas faire de différence, mais selon où le script sera placé ça peut l’empêcher de fonctionner correctement.
    Je te conseille plutôt :

    event.target.value

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