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 else if (event.target.value >= 5 && event.target.value else if (event.target.value >= 50 && event.target.value 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 else if (oChamp.value >= 5 && oChamp.value else if (oChamp.value >= 50 && oChamp.value 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 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.