Forums Développement Multimédia

Aller au contenu

Cocher une checkbox avec Javascript

PAO InDesign Acrobat PDF

6 réponses à ce sujet

#1 leMich

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 03 October 2012 - 20:39 PM

Bonjour,

j'ai créé un formulaire en pdf, et je dois insérer une petite interaction lorsque je coche une case (checkbox). En cliquant, je dois en fait cocher/décocher la 4e checkbox dans un champ nommé "Profil".

Le problème c'est pour cibler et changer la valeur d'une case parmi plusieurs dans un champ, j'ai testé plusieurs choses mais je ne trouve pas.

Voici mon code actuel, qui ne coche/décoche pas la checkbox :


if (event.rawValue = "1") { //si clic sur la case

  if ("Profil[4]".value == "Off") {
    "Profil[4]".value = "On";

           } else {

    "Profil[4]".value = "Off";
  }

}
 

Merci pour votre aide !

#2 JRB

    abracadabrantesque

  • Members
  • PipPipPipPipPipPipPipPip
  • 1864 messages

Posté 04 October 2012 - 10:06 AM

Salut,

Dans Acrobat il y a deux façon de faire pour que le fait de cocher une case en coche automatiquement une autre :

1- donner le même nom et la même valeur d'exportation à deux cases-à-cocher, ainsi elles se comportent comme une seule (cocher l'une coche forcément l'autre),

2- utiliser ce script dans la première case :

if (event.target.isBoxChecked(0))
{this.getField("CheckBox").checkThisBox(0,true);}
else
{this.getField("CheckBox").checkThisBox(0,false);}


Maintenant si on veux que ce soit la 4e case d'une série qui soit cochée il faut modifier le code ci-dessus ainsi :

if (event.target.isBoxChecked(0))
{this.getField("CheckBox").checkThisBox(3,true);}
else
{this.getField("CheckBox").checkThisBox(3,false);}

On utilise un 3 car en JavaScript les comptes commencent à zéro.
Exemple ci-joint.

:cool:

Fichier(s) joint(s)


Acrobate du PDF, InDesigner et Photoshopographe
abracadabraPDF.net

#3 leMich

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 05 October 2012 - 09:49 AM

Super, merci beaucoup !

#4 Esdeve

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 27 October 2014 - 16:24 PM

Salut.
Je me permet de remonter ce post. Le couper si besoin. Je suis sur un problème prolongeant celui ci ou similaire ... un peu complexifié :

J'avais déjà posté ailleurs demandant l'aide d'utilisateurs d'Acrobat, mais en seulement un ou deux mois ... je ne retrouve plus mon sujet dont je n'ai apparemment pas gardé trace, juste celui-ci que j'avais bookmarké pour pouvoir le relire. Bref, résumons l'original : je suis totalement novice et n'ai aucune expérience passée en quelque langage informatique que ce soit, mais en éditant des exemples et les testant je suis bien parvenu à un code identique à celui de cette page, pour cocher une autre case ; ou ce qui est mon but, plus d'une ; en ne touchant qu'à une seule. Cela simplement en ajoutant le même code à plusieurs reprise :

Premièrement, une petite note qui pourrait en aider certains, moi même je ne savais pas au départ où aller dans Acrobat :
En édition de formulaire, clic droit sur la box concernée, propriété, actions, dans les deux menus déroulants d' "ajouter une action", déclencheur "mouse up", action "executer javascript", puis ajouter. Un champ de texte s'ouvre directement pour écrire votre script. Ici :


if (event.target.isBoxChecked(0))
{this.getField("CheckBox1").checkThisBox(0,true);}
else
{this.getField("CheckBox1").checkThisBox(0,false);}

if (event.target.isBoxChecked(0))
{this.getField("CheckBox2").checkThisBox(0,true);}
else
{this.getField("CheckBox2").checkThisBox(0,false);}
...
etc etc selon le nombre à cocher.

Seulement j'ai depuis trois buts supplémentaires à ma première intention de multichecker.
1- Le premier puisque je risque de renouveler l'expérience, et avec moult moult cases, ce serait de savoir rendre tout ça plus compacte. Au moins gagner quelques lignes sur les box scripts les plus longs. J'ai bien essayé des choses comme :

Spoiler

et :
Spoiler

ou encore :
Spoiler

Et bien d'autres, qui montrent juste que je patouille en variant une syntaxe que je ne maitrise évidement pas même si je cherche à comprendre un maximum de sa théorie sans avoir de support. Réduire ce code est-il seulement possible ?


2- Le second but, c'est de faire l'inverse du code original ! C'est à dire qu'une case soit cochée si deux autres ou plus le sont. Le modèle rétroactif du premier.
Là aussi j'ai tâtonné, en réutilisant le matériel trouvé sur d'autres scripts d'abord en cherchant à le faire avec une seule ... ce qui, ne savant point et ne trouvant pas d'équivalent, n'a bien sur pas porté ses fruits.

J'ai par exemple du faire un machin comme ça (parmi tant autres), tentant même d'écrire quelque-chose que je n'avais pas vu mais qui pourrait exister :
Spoiler

3- Et pour finir, un détail me contrarie dans l'utilisation du code de ce sujet :
On peut comparer ce que je cherche à faire à une arborescence comme ci dessous.

Spoiler

Ors, en utilisant le code que nous avons :
- Si effectivement Checkbox1 et Checkbox2 s'activent bien automatiquement quand je coche manuellement Checkbox0 grâce au code contenu par celle ci.
- Et si Checkbox3 et Checkbox4 se s'activent de la même manière en cochant Checkbox1 ...
- Mon problème reste que Checkbox3 et Checkbox4 ne se cochent pas automatiquement lorsque Checkbox1 est activée par Checkbox0.

Savons nous à l'avance si il est possible d'en venir jusqu'à ce cochage de box en cascade ? J'espère que ce point 3- puisse être résolu par le point 2- en ajoutant le code y correspondant à ces cases récalcitrantes.


Pour ces trois questionnements, je suis toujours preneur de réponse allant de la résolution ex nihilo (Dixitque Deus: "Fiat JavaScriptus !" Et facta est JavaScriptus. Alleluia !!) sans que je n'y comprenne rien ce qui serait dommage, à l'aide simple, en passant par la correction, les travaux dirigés ^^, des références, au conseil de tutoriaux. En plus de ce que je peux trouver ici, je commence à en lire ailleurs, par exemple sur 3schools qui se trouve en haut de ma liste.

Ne trouvant nul part de topic sur l'ensemble de ces manipulations que je considère comme des besoins basiques dans la création d'un formulaire et dont d'autres pourraient avoir besoin, je vais aussi prendre un peu de temps pour retourner les forums, retrouver, et poursuivre mon premier post. J'y ai abandonné quelqu'un venu m'aider, et j'aime pas. J’espère juste ne pas être obligé de déserter de nouveau faute de temps ... et créer un deuxième sujet ni résolu ni fermé ...

Cordialement.


Ps : Waaahouu, ça me dit si il me manque une balise dans mon texte. ^^
PPS : Ah dommage, balise spoiler et code ne peuvent fonctionner ensemble.
PPPS : Voila j'étais sur abracadabrapdf.net, probablement découvert avec la pièce jointe présente dans ce sujet. L'utilisateur m'y aillant répondu possédant le même avatar que JRB, peut être dois-je comprendre que les deux utilisateurs cachent la même personne ? ^^

#5 JRB

    abracadabrantesque

  • Members
  • PipPipPipPipPipPipPipPip
  • 1864 messages

Posté 29 October 2014 - 11:45 AM

Bonjour,

Va faire un petit tour sur ce forum, il y a plusieurs sujets consacrés à cette problématique, dont un récent.
==> http://forums.abracadabrapdf.net/

Effectivement, il n'y a bien qu'une seule et même personne derrière ces deux avatars identiques, mais je ne me cache pas.
:texas:
Acrobate du PDF, InDesigner et Photoshopographe
abracadabraPDF.net

#6 Esdeve

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 29 October 2014 - 12:18 PM

Yep. Tu as sans doute vu après avoir écrit, j'ai retrouvé abracadabra en voyant le pdf joint au début de cette page, et y ai posté.
Je réédite souvent ne serait-ce que pour une faute ou une tournure qui ne me plait pas ...
Maintenant je bouffe du tuto ici et là, en commençant par w3schools au début de la liste que je me suis faite.

Suite sujet sur l'original plus ancien du coup. Je vais pas multiposter.
http://abracadabrapd...pic,2521.0.html

#7 thomasjack

  • Guests

Posté 11 September 2017 - 14:38 PM

I'm in the same situations! You can always send me a message to talk about it



2 utilisateur(s) li(sen)t ce sujet

0 membre(s), 2 invité(s), 0 utilisateur(s) anonyme(s)