abracadabraPDF › Forums › PDF – Général › Cases à cocher obligatoires
- Ce sujet est vide.
-
CréateurSujet
-
6 octobre 2015 à 08:35 #45264micka92Membre
Bonjour.
J’ai un groupement de 4 cases à cocher (1 ou plusieurs choix possibles). Je les ai toutes mises obligatoires et j’ai mis en place par case un script qui enlève la propriété obligatoire aux 4 autres si cette première est cochée. Cependant, si ce n’est pas le cas, j’ai dû mettre comme condition de toutes les rendre obligatoires. Cela me pose problème si jamais l’utilisateur coche une première case puis une seconde par erreur qu’il souhaite décocher. La première case déjà cochée redevient obligatoire. La seule solution pour l’utilisateur est de la décocher et la cocher à nouveau.
Avez-vous une solution afin que le script ne remette pas en obligatoire les cases déjà cochées ?
-
CréateurSujet
-
AuteurRéponses
-
6 octobre 2015 à 09:08 #59719MerlinMaître des clés
Bonjour.
A priori je prendrais le problème dans l’autre sens : un script qui attribue la propriété obligatoire aux 4 autres si cette première n’est pas cochée.
Mais pour bien faire il faudrait avoir un exemple…6 octobre 2015 à 11:10 #59720bebarthMaître des clésBonjour,
voici un script pour attribuer la priorité obligatoire aux 4 cases suivantes, lorsque la première est cochée.
@+
:bonjour:6 octobre 2015 à 13:34 #59721micka92MembreBonjour.
A priori je prendrais le problème dans l’autre sens : un script qui attribue la propriété obligatoire aux 4 autres si cette première n’est pas cochée.
Mais pour bien faire il faudrait avoir un exemple…Ci-joint l’exemple.
6 octobre 2015 à 13:41 #59722micka92MembreBonjour,
voici un script pour attribuer la priorité obligatoire aux 4 cases suivantes, lorsque la première est cochée.
@+
:bonjour:Bonjour.
Merci pour le script.
Dans mon cas en fait, j’ai 5 cases à cocher et il faut au moins que l’une d’entre elles soit cochée.
6 octobre 2015 à 14:23 #59723bebarthMaître des clésc’est pas tout à fait le même problème…
:bonjour:6 octobre 2015 à 14:37 #59724bebarthMaître des clésvoici 2 scripts, tels que j’ai compris les problèmes…
@+
:bonjour:6 octobre 2015 à 16:36 #59725micka92MembreMerci à tous mais je vais tenter d’expliquer au mieux mon besoin :
– 5 cases à cocher avec propriété “Obligatoire”
– dans mon formulaire, au moins une case doit être cochée
– le script dans mon exemple permet d’enlever la propriété “Obligatoire” de toutes les cases à cocher si l’une d’elles est cochée > Parfait !
– si on coche une case puis on la décoche, le script permet de les rendre à nouveau toutes obligatoires > Parfait !
– le problème commence si on coche 2 cases puis on en décoche une, alors le script les rend toutes obligatoires > Hic !6 octobre 2015 à 16:40 #59726micka92MembreJe ne sais pas si ceci fonctionnerait :
– mettre une valeur d’exportation de 1 pour chaque case à cocher
– les rendre toutes obligatoire par défaut
– créer un script sur chaque case à cocher qui enlèverait la propriété “Obligatoire” si la somme des valeurs d’exportation est supérieure ou égale à 1 et qui la remettrait si elle est égale à 0Si cela est faisable, je ne vois pas trop comment mettre en pratique le script…
6 octobre 2015 à 17:05 #59727MerlinMaître des clésBonjour.
Voici un exemple qui fonctionne pour la première case, il faudra le modifier en conséquence pour l’adapter aux autres (il n’y a que les noms de champs à adapter).
Avec en prime un retour Console parce-que le changement d’état de la propriété required ne saute pas aux yeux.if (event.target.isBoxChecked(0))
{
this.getField(“cc2”).required = false;
this.getField(“cc3”).required = false;
this.getField(“cc4”).required = false;
this.getField(“cc5”).required = false;
}
else
{
this.getField(“cc2”).required = true;
this.getField(“cc3”).required = true;
this.getField(“cc4”).required = true;
this.getField(“cc5”).required = true;
}
//
// retour Console à supprimer
console.clear();
console.show();
console.println(“Valeur Required du champ cc2 = ” + this.getField(“cc2”).required);
console.println(“Valeur Required du champ cc3 = ” + this.getField(“cc3”).required);
console.println(“Valeur Required du champ cc4 = ” + this.getField(“cc4”).required);
console.println(“Valeur Required du champ cc5 = ” + this.getField(“cc5”).required);6 octobre 2015 à 18:14 #59728bebarthMaître des clés…n’y a-t-il pas confusion entre propriété “obligatoire” qui nécessite une valeur pour le champ et “case obligatoirement cochée” ???
:doute:
6 octobre 2015 à 18:56 #59729micka92MembreBonjour.
Voici un exemple qui fonctionne pour la première case, il faudra le modifier en conséquence pour l’adapter aux autres (il n’y a que les noms de champs à adapter).
Avec en prime un retour Console parce-que le changement d’état de la propriété required ne saute pas aux yeux.if (event.target.isBoxChecked(0))
{
this.getField(“cc2”).required = false;
this.getField(“cc3”).required = false;
this.getField(“cc4”).required = false;
this.getField(“cc5”).required = false;
}
else
{
this.getField(“cc2”).required = true;
this.getField(“cc3”).required = true;
this.getField(“cc4”).required = true;
this.getField(“cc5”).required = true;
}
//
// retour Console à supprimer
console.clear();
console.show();
console.println(“Valeur Required du champ cc2 = ” + this.getField(“cc2”).required);
console.println(“Valeur Required du champ cc3 = ” + this.getField(“cc3”).required);
console.println(“Valeur Required du champ cc4 = ” + this.getField(“cc4”).required);
console.println(“Valeur Required du champ cc5 = ” + this.getField(“cc5”).required);Si je ne me trompe, ton script est le même que celui de mon exemple (hormis pour la partie console). De ce fait, si je coche 2 cases et que j’en décoche une, elles repassent avec la propriété “Obligatoire”.
6 octobre 2015 à 19:08 #59730MerlinMaître des clés…n’y a-t-il pas confusion entre propriété “obligatoire” qui nécessite une valeur pour le champ et “case obligatoirement cochée” ???
Pour le coup c’est pareil, une case-à-cocher ou un bouton-radio n’a de valeur (valeur d’exportation) que s’il est coché, sinon il est “Off”.
6 octobre 2015 à 19:10 #59731MerlinMaître des clésSi je ne me trompe, ton script est le même que celui de mon exemple
Je dois t’avouer que je ne l’ai même pas regardé…
:Ooops: :geek:6 octobre 2015 à 19:14 #59732micka92MembreJe dois t’avouer que je ne l’ai même pas regardé…
:Ooops: :geek:En tout cas, si tu me proposes le script que j’avais déjà fait, c’est que je m’améliore :Smiley15: .
L’inconvénient reste le cas où tu as déjà au moins 2 cases de cochées et que tu souhaites en décocher une. Elles passent toutes avec la propriété “Obligatoire” alors qu’il en reste à minima une de cochée.
Et mon idée d’utiliser la valeur d’exportation ? Est-elle viable ?
6 octobre 2015 à 21:49 #59733micka92MembreJ’ai réussi à résoudre mon problème en ajoutant une condition qui vérifie si au moins une des cases à cocher a la propriété “Obligatoire”.
Si oui, rien ne se passe et je n’attribue donc aucune propriété “Obligatoire” à mes cases à cocher. Si non, je leur attribue à toutes la propriété “Obligatoire”.
J’espère que vous comprenez mon charabia… :jerisjaune:
Si oui, tant mieux ! :bonjour:
Si non, je sors :fleche:6 octobre 2015 à 22:10 #59734MerlinMaître des clésDu moment que ça fonctionne…
:joker:7 octobre 2015 à 06:10 #59735bebarthMaître des clésBonjour,
Effectivement, du moment que ça résout le problème !Pour le coup c’est pareil, une case-à-cocher ou un bouton-radio n’a de valeur (valeur d’exportation) que s’il est coché, sinon il est “Off”.
…mais pour moi ce n’est quand même pas tout à fait la même chose : une case à cocher peut ou ne pas être obligatoire, sans être ou en étant cochée. Dans ce problème soumis, on n’utilise apparemment pas la valeur d’exportation, on vérifie juste si la case en cochée, je me trompe ??? D’ailleurs, je ne comprend pas très bien la propriété “Obligatoire” pour une case à cocher sans valeur d’exportation : soit elle est cochée, soit elle ne l’est pas !
@+:doute:
7 octobre 2015 à 08:11 #59736MerlinMaître des clésElle doit être obligatoirement cochée, indépendamment de sa valeur d’exportation.
Quand on leur donne le même nom et des valeurs d’exportation différentes les cases-à-cocher se comportent presque comme des boutons-radio : une seule coche possible, mais on peut décocher contrairement aux boutons-radio
Dans ce cas l’obligation à plus de sens (il est obligatoire de cocher oui ou non ou peut-être).
7 octobre 2015 à 19:10 #59737micka92MembreBonjour,
Effectivement, du moment que ça résout le problème !
…mais pour moi ce n’est quand même pas tout à fait la même chose : une case à cocher peut ou ne pas être obligatoire, sans être ou en étant cochée. Dans ce problème soumis, on n’utilise apparemment pas la valeur d’exportation, on vérifie juste si la case en cochée, je me trompe ??? D’ailleurs, je ne comprend pas très bien la propriété “Obligatoire” pour une case à cocher sans valeur d’exportation : soit elle est cochée, soit elle ne l’est pas !
@+:doute:
Cela a pour moi deux avantages :
– permettre à l’utilisateur du fichier de voir les cases à cocher obligatoires encadrés en rouge
– simplifier le script en contrôlant automatiquement les cases à cocher avec propriété “Obligatoire” plutôt que de créer une ligne par case7 octobre 2015 à 19:17 #59738micka92MembreJe tourne en rond sur un autre point.
Je souhaite qu’un script coche une case à cocher.
J’ai pensé à utiliser
Code:this.getField(“caseacocher”).isBoxChecked(0)ou
Code:this.getField(“caseacocher”).checkThisBox(true)ou encore
Code:this.getField(“caseacocher”).value = “On”
mais rien ne fonctionne !7 octobre 2015 à 19:45 #59739MerlinMaître des clésthis.getField(“caseacocher”).checkThisBox(true)
Celui-ci est presque bon, il manque juste le numéro d’ordre de la case et l’égalité :
this.getField(“caseacocher”).checkThisBox(0) = true;
7 octobre 2015 à 20:01 #59740micka92MembreCelui-ci est presque bon, il manque juste le numéro d’ordre de la case et l’égalité :
this.getField(“caseacocher”).checkThisBox(0) = true;
Merci Merlin !
7 octobre 2015 à 20:04 #59741micka92Membre:mur:
Code:if (condition1)
{
if (condition2)
{
action1
}
else
{
action2
}
action3
}
else
{
action 4
}Je ne comprends pas pourquoi l’action 3 ne se déclenche plus depuis que j’ai intégré un deuxième “if”… :mur:
8 octobre 2015 à 16:49 #59742micka92MembreAprès m’être cassé la tête pendant de longs moments, j’ai trouvé la raison du bug… :oh:
En fait, toutes les actions du scripts suivant la ligne
Code:this.getField(“caseacocher”).checkThisBox(0) = true;ne fonctionnaient pas. En passant cette ligne à la fin, tout fonctionne parfaitement.
Aimant comprendre le pourquoi des choses, j’aimerais que quelqu’un m’éclaire :idee:
8 octobre 2015 à 17:30 #59743MerlinMaître des clésBen, faute de voir le reste du script et son contexte ça va être difficile.
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.