Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/04/2011, 19h45   #1
Invité de passage
 
Homme
Étudiant
Inscription : avril 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 5
Points : 1
Points : 1
Par défaut [JS/Acrobat] Désélectionner bouton radio

Yop

Je confie à vous un léger problème que je rencontre actuellement et qui est étonnamment peu documenté. Je crée en ce moment des formulaires .pdf avec Acrobat Pro X. Et je suis confronté à 2-3 petits problème avec javascript. Voilà, j'utilise à un endroit donné de mon formulaire des boutons radio, c'est à dire des boutons mutuellement exclusifs. Le soucis, c'est que une fois qu'un des boutons est sélectionné, il n'est absolument plus possible de le dé-sélectionner. On peut bien sûr choisir un autre bouton, etc. Mais impossible de revenir à une même série de boutons radios tous vierges.

Du coup, je me suis dis qu'avec un peu de bon JS, ce doit être possible. J'ai essayé 2-3 combines, mais sans succès, ça ne fait pas exactement ce que je veux. Je pensais trouver un peu d'aide sur google mais étonnament, je ne trouve rien du tour, su ce sujet.

Quelqu'un aurait une idée ? Je m'était dis qu'il fallait un truc du genre: "On click, si le bouton est validé, réinitialisez le champ". Mais ça marche pas, parce que le clic supplémentaire revalide le champ, donc soit le champ n'est plus sélectionnable, soit il n'est pas réinitialisé. J'ai pensé à utiliser une variable, etc, mais je pense qu'il y a plus simple....

Par ailleurs, je voulais savoir si quelqu'un pouvait m'expliquer comment fonctionne l'événement "willCommit". J'ai beau lire et relire la document, je ne comprend pas....

Merci d'avance de votre aide.
Zosma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2011, 00h53   #2
Membre du Club
 
Avatar de Billy KiT
 
Inscription : mars 2011
Messages : 47
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 47
Points : 59
Points : 59
Citation:
Envoyé par Zosma Voir le message
Je pensais trouver un peu d'aide sur google mais étonnament, je ne trouve rien du tour, su ce sujet.
Salut,
Si si on en trouve plein, tapes "decocher bouton radio".
Au départ le bouton radio n'est pas fait pour ça.
Voici une méthode pas propre du tout mais simple qui fonctionne.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<head>
	<script type='text/javascript'>
	function uncheck(R) {
		radio = document.getElementById(R.id);
		if (radio.checked)
		setTimeout('radio.checked=false',50);
		}
	</script>
</head>
<body>
	<form>
		<label onmouseup="uncheck(this.firstChild)"><input type="radio" id="r1" name="rd" value="rd1" onmouseup="uncheck(this)"> Case à Cocher 1</label><br>
		<label onmouseup="uncheck(this.firstChild)"><input type="radio" id="r2" name="rd" value="rd2" onmouseup="uncheck(this)"> Case à Cocher 2</label>
	</form>
</body>
Il faut un id different pour chaque bouton, label en option
Billy KiT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 15h33   #3
Invité de passage
 
Homme
Étudiant
Inscription : avril 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 5
Points : 1
Points : 1
Hello, merci de ton aide !

Citation:
Envoyé par Billy KiT Voir le message
Salut,
Si si on en trouve plein, tapes "decocher bouton radio".
Non, on en trouve pas tant que ça pour Acrobat. Pour JS dans HTML on en trouve mais les codes ne fonctionnent pas en général à cause des spécifications du JS d'acrobat.

Actuellement, je suis sur un truc du genre mais il ne fonctionne pas comme je le voudrais:

C'est sur du "onClick":

Code :
1
2
3
4
var f = this.getField("mesBoutonsRadio");
if(f.isBoxChecked){
stoprun=app.setTimeOut("this.resetForm('mesBoutonsRadio')", 50);
}
Le soucis avec ce code, c'est que quel que soit l'état de la collection des boutons radios, ils sont tous décochés, or je ne voudrais que le bouton radio coché soit décoché quand on appuie dessus.
Zosma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 15h57   #4
Invité de passage
 
Homme
Étudiant
Inscription : avril 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 5
Points : 1
Points : 1
Bon, j'ai trouvé une solution qui fonctionne sans être, je pense, la plus optimale, mais je vous la met:

En fait, sur CHAQUE bouton, lors d'un clic:

Code :
1
2
3
4
var f = this.getField("monChampBoutonRadio");
if(f.isBoxChecked(0)){
	stoprun=app.setTimeOut("this.resetForm('monChampBoutonRadio')", 50);
}
"f.isBoxChecked(x)" correspond à l'index du bouton dans le champ de bouton radio. Par exemple, si vous avez 3 boutons radio, le premier sera 0, le deuxième 1, et le troisième 2.

Je pense que l'on pourrait utiliser une variable pour ne pas dupliquer le code mais cela suppose récupérer l'index du bouton pressé et je ne sais pas comment faire. Tant que le champ reste limité à 4-5 boutons radio, ça ne pose pas de problème.

Voilou !
Zosma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 19h33   #5
Invité de passage
 
Homme
Étudiant
Inscription : avril 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 5
Points : 1
Points : 1
Par contre, je suis en train de me rendre compte, en faisant mes essais que le pdf ainsi crée ne fonctionne pas correctement sous des lecteurs alternatifs, comme pdfXviewer ou Evince sous Linux. Un peu ennuyeux quand. En fait, le pdf fonctionne mais pas le code JS qui ne permet pas de décocher correctement les boutons radios. Je me demande comment ça se fait...
Zosma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 19h49   #6
Invité de passage
 
Inscription : mai 2007
Messages : 7
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2007
Messages : 7
Points : 2
Points : 2
Par défaut Avez-vous essayer la méthode Adobe ?

Pour créer un jeu de boutons radio qui s'excluent mutuellement (un seul est actif à la fois) affectez aux champs le même nom mais des valeurs d'exportation différentes.
Çà marche tout seul, pas besoin de JS.

Exemple :
créer 4 boutons pour le mode de paiement

Dans les propriétés de chaque champ
• Dans l'onglet "Général"
> nom de tous les boutons 'Paiment'
• Dans l'onglet "Options"
> valeur d'exportation
(bouton 1) CB
(bouton 2) Paypal
(bouton 3) Chèque
(bouton 4) Espèce

> Ne mettez rien dans l'onglet "Action"
plesguillon est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h31.


 
 
 
 
Partenaires

Hébergement Web