Donnez vie à vos documents numériques !
 

Conditions sur bouton radio

abracadabraPDF Forums PDF – Général Conditions sur bouton radio

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45551
    Novaty
    Membre

    Bonjour,

    Je lutte sur un script que je dois faire qui comporte des conditions, je ne suis pas très fort en javascript. Si vous pouvez m’aider à le construire, ça serait super gentils de votre part. En fait j’ai adapté un code que j’ai trouvé pour afficher une valeur quand un bouton radio est coché mais je n’arrive pas à “compiler” / additionner les conditions.

    Je joins le tableau sur lequel il faudrait faire apparaître des valeurs en fonction des boutons radio cochés ou pas.

    Lorsque rien du tout n’est coché : le code qui doit apparaître est « A »
    Lorsque « ne fait pas » est coché  : on code « C »
    Lorsque une à 3 lettres sont cochées : le code qui doit apparaître est « B »
    Lorsque les 4 cases sont cochées : le code qui doit apparaître est « C »

    Merci pour votre aide !

    Benjamin

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

    Bonjour.

    Ce n’est pas très compliqué mais il manque des informations, notamment sur ce qui doit s’afficher si on coche la 3e ou la 4e case, si on en coche deux, etc.
    L’idéal serait que tu joignes un exemple ou un extrait de ton formulaire (fonction pièces jointes ci-dessous ou : http://abracadabrapdf.net/forum/index.php/topic,2974.0.html ).

    #61800
    Novaty
    Membre

    Bonjour Merlin,

    Merci pour votre réponse rapide.

    J’avais mis le formulaire en PJ. Je le reposte si il y a eu un bug.

    Tous les conditions sont décrites ci-dessous :

    Lorsque rien du tout n’est coché : le code qui doit apparaître est « A » OK
    Lorsque « ne fait pas » est coché  : on code « C » OK
    Lorsque une à 3 lettres sont cochées : le code qui doit apparaître est « B » ici, si au moins 1 à 3 lettres cochées – donc par exemple si S est uniquement cochée, on va attribuer la lettre B – Si S et H cochées > pareil, lettre B.
    Lorsque les 4 cases sont cochées : le code qui doit apparaître est « C » OK

    Est-ce plus clair ?

    PS : seul la colonne “transferts” comporte les boutons pour l’instant.

    Merci beaucoup pour votre aide !

    PS : j’aurais une demande plus complexe à vous adresser qui nécessitera plus de travail – pourrait-on en parler en MP ?

    Benjamin

    #61801
    Merlin
    Maître des clés

    J’avais mis le formulaire en PJ. Je le reposte si il y a eu un bug.

    Oui, il y a eu un gros bug humain : la fatigue ! Je n’avais pas vu la PJ… :geek:

    Dans l’exemple ci-joint j’ai fait les deux premières rangées, je te laisse faire les suivantes.
    Dans le script ci-dessous il faut remplacer les numéros en rouge par le numéro de la rangée (le numéro qui est en suffixe de chaque champ).
    Ce script est à placer en script de calcul dans les champs code.n

    if (this.getField(“S1.0“).value == “Off”) {var nS1 = 0;}
    else {var nS1 = 1;}
    if (this.getField(“T1.0“).value == “Off”) {var nT1 = 0;}
    else {var nT1 = 1;}
    if (this.getField(“C1.0“).value == “Off”) {var nC1 = 0;}
    else {var nC1 = 1;}
    if (this.getField(“H1.0“).value == “Off”) {var nH1 = 0;}
    else {var nH1 = 1;}
    var nTotal = (nS1 + nT1 + nC1 + nH1) * 1;
    if (this.getField(“N1.0“).value != “Off”) {event.target.value = “C”;}
    else if (nTotal >= 1)  {event.target.value = “B”;}
    else {event.target.value = “A”;}

    pourrait-on en parler en MP ?

    Pas de souci.

    #61802
    Novaty
    Membre

    Bonjour Merlin,

    C’est top merci beaucoup c’est exactement ce que je voulais. Il y a juste une condition qui n’est pas remplie :

    Lorsque les 4 cases (S, T, C, H) sont cochées : le code qui doit apparaître est « C ».

    Pourrais-tu m’indiquer la valeur que je dois ajouter au script ?

    #61803
    Merlin
    Maître des clés

    Non testé mais ça devrait le faire.

    if (this.getField(“S1.0”).value == “Off”) {var nS1 = 0;}
    else {var nS1 = 1;}
    if (this.getField(“T1.0”).value == “Off”) {var nT1 = 0;}
    else {var nT1 = 1;}
    if (this.getField(“C1.0”).value == “Off”) {var nC1 = 0;}
    else {var nC1 = 1;}
    if (this.getField(“H1.0”).value == “Off”) {var nH1 = 0;}
    else {var nH1 = 1;}
    var nTotal = (nS1 + nT1 + nC1 + nH1) * 1;
    if (this.getField(“N1.0”).value != “Off”) {event.target.value = “C”;}
    else if (nTotal == 4)  {event.target.value = “C”;}
    else if (nTotal >= 1)  {event.target.value = “B”;}
    else {event.target.value = “A”;}

    #61804
    Novaty
    Membre

    C’est parfait – merci beaucoup !!! :bravo:

    #61805
    Novaty
    Membre

    Re bonjour,

    J’ai encore un ptit service à te demander – j’aurais besoin d’adapter ta dernière version de ton code avec les conditions ci-dessous :

    – dès qu’on coche « Ne sait pas » : les autres cases ne peuvent pas être cochées
    – dès qu’on coche une ou plusieurs lettres : la case « ne fait pas » ne peut pas être cochée

    Penses-tu que ça soit faisable ?

    Merci encore

    #61806
    Merlin
    Maître des clés

    A placer en action souris relevée dans le champ N1 :

    Code:
    this.getField(“S1”).display = !event.target.isBoxChecked(0);
    this.getField(“T1”).display = !event.target.isBoxChecked(0);
    this.getField(“C1”).display = !event.target.isBoxChecked(0);
    this.getField(“H1”).display = !event.target.isBoxChecked(0);

    A placer en action souris relevée dans chaque champ S1, T1, C1 et H1 :

    Code:
    this.getField(“N1”).display = !event.target.isBoxChecked(0);
    #61807
    Novaty
    Membre

    Merci pour cette réponse rapide.

    Cela ne fonctionne malheureusement pas  :Smiley02: – je joins le fichier pour info (en espérant avoir fait la bonne manip) j’ai mis les codes sur la première ligne.

    https://we.tl/tFOfX9eI2n

    Serait-il possible de masquer les champs quand ces 2 conditions sont remplies peut-être ?

    #61808
    Merlin
    Maître des clés

    C’est parce-que j’ai oublié les suffixes que ça ne fonctionne pas :

    A placer en action souris relevée dans le champ N1.0 :

    this.getField(“S1.0“).display = !event.target.isBoxChecked(0);
    this.getField(“T1.0“).display = !event.target.isBoxChecked(0);
    this.getField(“C1.0“).display = !event.target.isBoxChecked(0);
    this.getField(“H1.0“).display = !event.target.isBoxChecked(0);

    A placer en action souris relevée dans chaque champ S1.0, T1.0, C1.0 et H1.0 :

    this.getField(“N1.0“).display = !event.target.isBoxChecked(0);

    .

    #61809
    Novaty
    Membre

    Super merci Merlin,

    J’ai ajouté un “!” et ça fonctionne bien !

    A placer en action souris relevée dans le champ N1.0 :

    this.getField(“S1.0”).display = !!event.target.isBoxChecked(0);
    this.getField(“T1.0”).display = !!event.target.isBoxChecked(0);
    this.getField(“C1.0”).display = !!event.target.isBoxChecked(0);
    this.getField(“H1.0”).display = !!event.target.isBoxChecked(0);

    A placer en action souris relevée dans chaque champ S1.0, T1.0, C1.0 et H1.0 :

    this.getField(“N1.0”).display = !!event.target.isBoxChecked(0);

    #61810
    Merlin
    Maître des clés

    En fait le “!” signifie “contraire de la condition”.
    Donc tu l’inverses deux fois : le mieux serait de ne pas l’inverser du tout en supprimant “!!“.
    :Smiley15:

    #61811
    Novaty
    Membre

    ok alors :)

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