[ Résolu ] Cacher des champs de texte.

june57

Nouveau membre
Bonjour,
J'ai fait une petite fonction Javascript permettant de cacher ou afficher des champs texte selon que l'on clique sur tel ou tel bouton radio. Jusque là, tout va bien. Cependant, à l'affichage de la page, les champs de texte sont tous visibles au départ, alors que je voudrais qu'ils ne le soient pas. J'ai bien essayé d'y remédier, mais rien n'a fonctionné.

Voici mon code :

[cpp]<html>

<head>
<title></title>
<SCRIPT LANGUAGE="javascript">
function cacher(arg) {
if (arg==1) {
document.getElementById('text1').style.visibility='visible'; }
else {
document.getElementById('text1').style.visibility='hidden'; }
if (arg==2) {
document.getElementById('text2').style.visibility='visible'; }
else {
document.getElementById('text2').style.visibility='hidden'; }
if (arg==3) {
document.getElementById('text3').style.visibility='visible'; }
else {
document.getElementById('text
3').style.visibility='hidden'; }
}
</SCRIPT>
</head>

<body>
<form action="" method="post">
<p><label><input type="radio" name="b" value="1" onclick="cacher(1)">Administration</label>&nbsp;&nbsp;&nbsp;&nbsp;<input id="text1" type="text" value="Rechercher une personne de l'administration">
<p><label><input type="radio" name="b" value="2" onclick="cacher(2)">Professeur</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input id="text2" type="text" value="Rechercher un professeur">
<p><label><input type="radio" name="b" value="3" onclick="cacher(3)">Elève</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input id="text3" type="text" value="Rechercher un élève">
</form>
</body>

</html>[/cpp]

Merci d'avance pour votre aide !
 

boub popsyteam

Grand Maître
Met les tous hidden dans ta CSS ... et le JS changera ça une fois la page finie de charger.
 

june57

Nouveau membre
J'ai essayé, mais le problème est que si je les met tous en hidden, la fonction javascript ne "fonctionne" plus, les champs restent toujours cachés.
 

boub popsyteam

Grand Maître
Bon alors il faut creer une fonction js init() qui sera:
(en supposant que tu ne veuilles montrer que le text1 au début)
Code:
function init() {
document.getElementById('text1').style.visibility='visible';
document.getElementById('text2').style.visibility='hidden';
document.getElementById('text3').style.visibility='hidden';
}

Histoire de cacher les div au demarrage, tu le mettras dans le body en onload :)

Code:
<body onload="init()">

(bon, pas testé, mais je pense que ça devrait marcher :))
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 005
Membres
1 586 388
Dernier membre
mery2005
Partager cette page
Haut