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 20/11/2011, 12h22   #1
Membre à l'essai
 
Inscription : mai 2004
Messages : 195
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 195
Points : 20
Points : 20
Par défaut test si radio checked alors action

Bonjour,

J'ai un formulaire assez compliqué avec des lignes comprenant un input radio et un input text.
Quand input radio est checked, je veus donner une valeur à un input text commun à toutes les lignes.

this.form.elements['F824'].value='6';

Je suis nul en javascript et je n'arrive à trouver la formule magique à place devant la commande ci-dessus.

Il s'agit juste de tester si le radio est checked ou non.
onclick n'est pas suffisant car le checked du radio peut avoir été provoqué par un focus sur le text de la même ligne.

Code :
1
2
3
4
5
6
 
<input type="radio" name="super" value="6-OS1-S-EXT-DG" id="A6-OS1-S-EXT-DG" onclick="this.form.elements['U6-OS1-S-EXT-DG'].focus();" />
 
<input type="text" size="4" name="unit[6-OS1-S-EXT-DG]" id="U6-OS1-S-EXT-DG" onclick="this.form.elements['A6-OS1-S-EXT-DG'].checked=true;" />
 
<input type="text" size="2" name="prec[824][F]" id="F824" />
Merci d'avance
boteha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 18h31   #2
Membre à l'essai
 
Inscription : mai 2004
Messages : 195
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 195
Points : 20
Points : 20
Bonjour,

Merci de ta réponse.

Cela au niveau de la radio sans lier à un événement ?

Code :
1
2
3
4
5
 
<input type="radio" name="super" value="6-OS1-S-EXT-DG" id="A6-OS1-S-EXT-DG" if(form.checkbox.checked==true){
this.form.elements['F824'].value='6';} onclick="this.form.elements['U6-OS1-S-EXT-DG'].focus();" />
 
// Et ainsi de suite sur plusieurs lignes
Si tu es sûr je fais l'essai.
boteha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 18h36   #3
Membre Expert
 
Avatar de rotrevrep
 
Homme yannick inizan
Secrétaire d'état à la procrastination
Inscription : février 2011
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme yannick inizan
Âge : 25
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Secrétaire d'état à la procrastination
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 304
Points : 1 118
Points : 1 118
Envoyer un message via MSN à rotrevrep Envoyer un message via Skype™ à rotrevrep
j'ai édité : en fait, la condition se place dans ton code javascript :
Code :
<input type="" onclick="if(form.checkbox.checked==true){/* code à exécuter */}">
form est la valeur de l'attribut "name" de ton formulaire
checkbox est la valeur de l'attribut "name" de la checkbox à vérifier

j'espère que c'est compréhensible pour toi !
rotrevrep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 19h29   #4
Membre à l'essai
 
Inscription : mai 2004
Messages : 195
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 195
Points : 20
Points : 20
Merci de tes précisions.

Cependant, le problème est que tu peux avoir le radio checked sans avoir cliqué dessus.
Le click sur le text dans la même ligne que le radio provoque checked...

Code :
1
2
 
<input type="text" size="4" name="unit[6-OS1-S-EXT-DG]" id="U6-OS1-S-EXT-DG" onclick="this.form.elements['A6-OS1-S-EXT-DG'].checked=true;" />
Je reconnais que c'est tordu.
Il faudrait pouvoir vérifier le checked du radio sans être lié à un événement et j'ai l'impression que c'est impossible sans une fonction.

Le moins mauvais compromis est d'ajouter une règle :

Code :
1
2
 
onclick="this.form.elements['A6-OS1-S-EXT-DG'].checked=true; this.form.elements['F824'].value='6';" />
Comme le client est obligé de remplir ce text, il aura bien le remplissage automatique de F824.

Le problème est : s'il change la valeur de F824, puis reclique dans le text pour changer la valeur du text, il remplace la valeur de F824...
boteha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 20h25   #5
Membre Expert
 
Avatar de rotrevrep
 
Homme yannick inizan
Secrétaire d'état à la procrastination
Inscription : février 2011
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme yannick inizan
Âge : 25
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Secrétaire d'état à la procrastination
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 304
Points : 1 118
Points : 1 118
Envoyer un message via MSN à rotrevrep Envoyer un message via Skype™ à rotrevrep
si je relis ton code, quand tu rentre du texte, ça coche automatiquement la checkbox et affiche la valeur 6 dans une autre textbox.
que tu cliques ou non dessus, elle sera cochée de toute manière
Tu devrais enlever
Code :
this.form.elements['A6-OS1-S-EXT-DG'].checked=true;
si tu veux contrôler l'état de ta checkbox .
Car on ne contrôle pas un objet dont l'état sera toujours le même !
rotrevrep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 20h52   #6
Membre à l'essai
 
Inscription : mai 2004
Messages : 195
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 195
Points : 20
Points : 20
Encore merci de ton aide.

Le problème est un peu difficile à comprendre sans voir l'application.

Grâce à tes suggestions, je pense avoir trouvé une solution un peu lourdingue mais logique.

Je te l'envoie tout à l'heure, il est temps de manger un morceau.
boteha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 22h03   #7
Membre à l'essai
 
Inscription : mai 2004
Messages : 195
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 195
Points : 20
Points : 20
Bonsoir,

J'ai dit que c'était lourdingue :

Code :
1
2
3
4
5
6
7
 
<tr class="odd" title="N6625A"><td class="chek"><input type="radio" name="super" value="N6625A" id="AN6625A" onclick="this.form.elements['UN6625A'].focus();this.form.elements['F54'].value='4';" /></td><td>4 fibres, 9 / 125 (OS1), Str. serr&eacute;e &gt;&gt; <input type="text" size="4" name="unit[N6625A]" id="UN6625A" onclick=" if(this.form.elements['AN6625A'].checked==false) {this.form.elements['AN6625A'].checked=true;this.form.elements['F54'].value='4';}" /> m</td> etc...</tr>
<tr title="N6626A"><td class="chek"><input type="radio" name="super" value="N6626A" id="AN6626A" onclick="this.form.elements['UN6626A'].focus();this.form.elements['F54'].value='6';" /></td><td>6 fibres, 9 / 125 (OS1), Str. serr&eacute;e &gt;&gt; <input type="text" size="4" name="unit[N6626A]" id="UN6626A" onclick=" if(this.form.elements['AN6626A'].checked==false) {this.form.elements['AN6626A'].checked=true;this.form.elements['F54'].value='6';}" /> m</td> etc...</tr>
 
etc...
 
<p class="at"><input type="hidden" name="prec[54][at]" value="FO" />Je demande une pr&eacute;connectorisation sur <input type="text" size="2" name="prec[54][F]" id="F54" /> fibres <b>(obligatoire pour ce c&acirc;ble)</b></p>
Que tu commences par cliquer sur le radio ou sur le text, le nombre par défaut est saisie dans prec[54][F].
Si tu modifies prec[54][F] puis retournes dans le text pour modifier la valeur, la veleur de prec[54][F] n'est pas modifiée car le radio est déjà checked.

Je te donnerai un lien vers l'appli quand elle sera en ligne.

Encore merci.
boteha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 13h02   #8
Membre à l'essai
 
Inscription : mai 2004
Messages : 195
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 195
Points : 20
Points : 20
Bonjour,

Pour illustration :

http://www.touslescables.com/cable-optique-F1.html
boteha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h32.


 
 
 
 
Partenaires

Hébergement Web