Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > HTML / DHTML / XHTML
HTML / DHTML / XHTML Forum sur la programmation HTML / DHTML/ XHTML et la validation W3C. Cours (X)HTML, FAQ (X)HTML
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 05/05/2011, 16h25   #1
Invité de passage
 
Homme Gwenn Renaud
Étudiant
Inscription : mai 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Gwenn Renaud
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 6
Points : 1
Points : 1
Par défaut Input radio fonctionnant mal

Bonjour, je ne sais pas trop si je dois poster ici ou dans la section javascript vu que je ne sait pas quelle partie de mon code pose probleme
Je cherche a faire un formulaire html différent selon la valeur de l'imput radio le problème est que le premier formulaire s'affiche toujours et les deux autres s'affiche en dessous.
Pour faire le changement j'utilise une fonction javascript je vais vous mettre les codes html et js qui me pose problème si quelqu'un a une idée de ce qui bloque.
voici la partie formulaire de mon html
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<form method="post"> 
Type de connexion: 
<label><input id="typeLogPwd" type="radio" name="typeLogin" value="LogPwd" onchange="afficherLogPwd();"/> LogPwd </label> 
<label><input id="typeLogNumSecu" type="radio" name="typeLogin" value="LogNumSecu" onchange="afficherLogNumSecu();"/> LogNumSecu </label> 
<label><input id="typeLog" type="radio" name="typeLogin" value="Log" onchange="afficherLog();"/> Log </label> 
<div id="LogPwd" style="display: none;"> 
<table> 
<tr><td>Login: </td><td colspan="2"><input type="text" name="loginLogPwd" size="9" /></td></tr> 
<tr><td>pass: </td><td><input type="password" name="pass"/></td></tr>	
</table> 
</div> 
<div id="LogNumSecu" style="display: none;"> 
<table> 
<tr><td>Login: </td><td colspan="2"><input type="text" name="loginLogNumSecu" size="9" /></td></tr> 
<tr><td>Num Secu: </td><td><input type="password" name="pass"/></td></tr> 
</table> 
</div> 
<div id="Log" style="display: none;"> 
<table> 
<tr><td>Login: </td><td colspan="2"><input type="text" name="loginLog" size="9" /></td></tr>	
</table> 
</div> 
<input type="submit" value="Connexion" /> 
</form>
et le js
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function afficherLogPwd() { 
document.getElementById('LogPwd').style.display = "block"; 
document.getElementById('LogNumSecu').style.display = "none"; 
document.getElementById('Log').style.display = "none";	
} 
function afficherLogNumSecu() { 
document.getElementById('LogPwd').style.display = "none"; 
document.getElementById('LogNumSecu').style.display = "block"; 
document.getElementById('Log').style.display = "none"; 
} 
function afficherLog() { 
document.getElementById('LogPwd').style.display = "none"; 
document.getElementById('LogNumSecu').style.display = "none"; 
document.getElementById('Log').style.display = "block"; 
}
switchmo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 16h34   #2
Membre éprouvé
 
Avatar de Nheo_
 
Homme
Étudiant
Inscription : avril 2011
Messages : 317
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 317
Points : 405
Points : 405
Bonjour,

Je viens de tester ton code et tout marche bien : je n'ai bien qu'un seul div en fonction du radio. (Firefox 4).

Sous quel navigateur as tu testé ? Peux tu testé sur plusieurs ?

Et n'oublie pas : ^^. Sinon très difficile de lire ton code.
Nheo_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 17h07   #3
Invité de passage
 
Homme Gwenn Renaud
Étudiant
Inscription : mai 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Gwenn Renaud
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 6
Points : 1
Points : 1
Désolé pour les balises petit oubli de ma part.
En effet le code marche parfaitement seul (j'avait supprimer une partie du code qui n'avait rien a voir apperement le probleme vient du table qui faisait planter)
En tout cas merci quand meme car je n'ai pas eu l'idée de le tester tel quel!!!
switchmo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 19h29   #4
Invité de passage
 
Homme Gwenn Renaud
Étudiant
Inscription : mai 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Gwenn Renaud
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 6
Points : 1
Points : 1
En fait le problème persiste mais seulement avec IE (et oui malheureusement c'est un obligation d'utiliser IE). En fait j'ai un peu plus cerner le problème sous IE après avoir cliqué sur l'input radio il faut refaire un click (peu importe ou) pour que le formulaire change (comme si il fallait confirmer le changement) Ce problème n'est présent ni sur chrome ni sur firefox et je n'arrive pas a voir d'ou cela vient.
switchmo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 21h06   #5
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
Bonjour,
ce n'est pas une bonne idée que d'utiliser l'événement onchange sur des radios boutons, d'autant que IE ne considère le changement que lorsque l'élément à perdu le focus.
Il faut voir que lorsqu'un radio change cela entraîne le changement d'état des autres donc possible "emmêlage" de pinceau...

Il est dans ce cas plus judicieux de passer par l'événement onclick, sachant que quand on clique sur un radio bouton c'est pour le sélectionner.

Tu peux également fusionner tes fonctions en une seule
exemple
Code javascript :
1
2
3
4
5
6
function affiche( obj){
  var tId = ['LogPwd', 'LogNumSecu', 'Log']; // les IDs a afficher/masquer
  for( var i in tId){
    document.getElementById( tId[i]).style.display = tId[i] == obj.value ? 'block' : 'none';
  }
}
avec un appel
Code html :
<input id="typeLogPwd" type="radio" name="typeLogin" value="LogPwd" onclick="affiche(this);" /> LogPwd </label>
NoSmoking 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 08h54.


 
 
 
 
Partenaires

Hébergement Web