Faire apparaitre un div apres qu'une checkbox

Résolu/Fermé
nicusjam Messages postés 36 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 21 juillet 2011 - 7 août 2008 à 11:37
nicusjam Messages postés 36 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 21 juillet 2011 - 7 août 2008 à 17:23
Bonjour,
J'ai un formulaire avec 4 div, et une checkbox au debut de chaque div . Coté resultat je souhaite que quand la checkbox de ma 1ere div est cochée, la seconde div s'affiche, et ainsi de suite. Je veux mettre un script js pour ça, mais je galere un peu . Voici une portion du code/

<div id="DI" style="visibility:hidden; position:absolute; align:left;  width:790px; height:30px; margin-top:29px; background-color: ; ">
			  <tr  bgcolor="#FFFFFF">
                     
				  <td width="20"><input id="checkbox_di" name="di" type="checkbox" class="Style1" value="checked" onClick="montrerDiv(this);"  /></td>
                  <td width="100"> DI</td>
                  <td width="180">
				  <script language="JavaScript" type="text/JavaScript" >
function montrerDiv(checkbox_di)
				  {
	if(checkbox_di.checked == true)
	{
		document.getElementById('AVP').style.visibility = visible;
	}
	else
	{
		document.getElementById("AVP" + checkbox_di.value).style.visibility = hidden;
	}
}  
				  </script>


DI est ma 1ere div, la checkbox qui correspond est checkbox_di, la 2eme div est AVP.

Merci pour votre aide ! Cordialement.

1 réponse

Salut

Je pense que ce code est à peu près ce que tu cherches à faire :
<style>
 div.divCachee{
   visibility:hidden;
   position:absolute;
 }
 div.divCachee, div.divPasCachee{
   display:inline;  /*car j'ai cru comprendre que tu voulais les aligner horizontalement (sinon, cette ligne est à virer)*/
 }
</style>
<script>
 var mesDivs=new Array("DI","AVP","DIV3","DIV4");
 var str="";
 var premier=true;
 for(var i=0;i<mesDivs.length;i++){
   str+=" <div id='"+mesDivs[i]+"' class='";
   if(premier){
     str+="divPasCachee";
     premier=false;
   }
   else{
     str+="divCachee";
   }
   str+="'>";
   str+="<input type='checkbox' name='"+mesDivs[i]+"' class='Style1' onClick='verif(this,"+i+")'>";
   str+=mesDivs[i];
   str+="</div>";
 }
 document.write(str);
 
 verif=function(){
   if(arguments[0].checked){
     if(arguments[1]<(mesDivs.length-1)){
       document.getElementById(mesDivs[arguments[1]+1]).className="divPasCachee";
     }
   }
   else{
     for(var _i=arguments[1]+1;_i<(mesDivs.length);_i++){
       document.getElementById(mesDivs[_i]).className="divCachee";
       document.getElementById(mesDivs[_i]).checked=false;
     }
   }
 };
</script>
1
nicusjam Messages postés 36 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 21 juillet 2011 11
7 août 2008 à 17:23
Mult mercis ddez !

Je teste ta proposition de code dès ce soir, là je pars du boulot, j'ai trop galéré avec mon code, y'a des jours comme ça où je m'empêtre... Mais là à lire ton code je pense qu'il y a des subtilités qui m'avaient échappées ! Merci encore de ta disponibilité ! Cdlt, Nicus.
0