Page 1 sur 1

désactiver une div

Posté : 21 avr. 2009, 17:02
par Invité
Bonjour,
Voici mon tout d'abord mon code :
<html>
<head>
<meta http-equiv="Content-Language" content="en" />
<meta name="GENERATOR" content="PHPEclipse 1.0" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>title</title>
</head>
<body>

	<script language="JavaScript" type="text/javascript">
	
		function display()
		{
			var valeur = document.getElementById("select1").value ;
					
			if(valeur=="Mlle")
			{
				var id = document.getElementById("id1") ;
				var idautre1 = document.getElementById("id2") ;
				var idautre2 = document.getElementById("id3") ;
				
				if (id.style.display == "none")
				{
					id.style.display = "block" ;
					idautre1.style.display = "none" ;
					idautre2.style.display = "none" ;
					
					idautre1.disabled="disabled";
					idautre2.disabled="disabled";
				} 	
			}
			else if (valeur=="Mme")
			{
				var id = document.getElementById("id2") ;
				var idautre1 = document.getElementById("id1") ;
				var idautre2 = document.getElementById("id3") ;
				if (id.style.display == "none")
				{
					id.style.display = "block" ;
					idautre1.style.display = "none" ;
					idautre2.style.display = "none" ;
					
					idautre1.disabled="disabled";
					idautre2.disabled="disabled";
				} 		
			}
			else
			{
				var id = document.getElementById("id3") ;
				var idautre1 = document.getElementById("id1") ;
				var idautre2 = document.getElementById("id2") ;
				if (id.style.display == "none")
				{
					id.style.display = "block" ;
					idautre1.style.display = "none" ;
					idautre2.style.display = "none" ;
					
					idautre1.disabled="disabled";
					idautre2.disabled="disabled";
				} 
			}
		}
	
	</script>
	<form action="ValidTest.php" method="post"> 
		<select name="F_EL_CIV" id="select1" onchange="display();">
			<option value="Mlle">Mlle</option>
			<option value="Mme">Mme</option>
			<option value="M">M</option>
		</select>
		<div id="id1" style="display:none">
			1
  			<input type="hidden" name="F_Test" value="1"/>
		</div>
		<div id="id2" style="display:none">
			 2
			 <input type="hidden" name="F_Test" value="2"/>
		</div>
		<div id="id3" style="display:none">
			 3
			 <input type="hidden" name="F_Test" value="3"/>
		</div>
		<br><input type="submit" name="name" value="Envoi"/>
	</form>
</body>
</html>

OK ma fonction Javascript est à optimiser mais elle fonctionne pour mes test pour le moment .
Grâce à ce code je récupère des données de ma liste déroulante dans des div ( en vue de créer des formulaires dynamique ) ,mais le problèmes est que je récupère toujours la dernière valeur F_Test ici ( "M" ) alors que je voudrais seulement récupérer la valeur sélectionner =s ...

Comment faire ??

PS : Je m'attend a recevoir des réponse du type pourquoi ne pas récupérer simplement la valeur de ma liste déroulante par POST ?? Ma réponse est ce petit bou de code est du test et que plus tard j'aurai besoin de faire comme je vous montre.

Pour résumer j'arrive a cacher mes div mais pas à les "désactiver"... HELP

Merci d'avance[/code]

Posté : 21 avr. 2009, 18:45
par Nours312
actuellement, ce que tu cherches à desactiver c'est les <div> et non les <input> pour intervenir sur les <input> tu devrais tester ceci :
idautre1.getElementsByTagName('input')[0].disabled="disabled" ;
idautre2.getElementsByTagName('input')[0].disabled="disabled" ;
enfin, si j'ai compris ... pour ce qui est de l'optimisation, c'est sur qu'il y a quelque chose à faire en ce sens ! ... ;)

@+

Posté : 22 avr. 2009, 08:50
par Invité
Oui c'est sur que en désactivant les input sa marcherai mais je prévoie d'en placer plusieurs dans mes div donc ça serai long et laborieux mais si c'est la seul solution alors je croie que je vais devoir m'y résigner ... :cry:

Posté : 22 avr. 2009, 09:02
par Invité
Pardon je n'avais pas regarder correctement ...

Ça serai parfait si cela marcher avec les select .
Petite question : La propriété pour remettre la valeur à enable ?

j'ai essayer ceci
id.getElementsByTagName('input')[0].disabled="true" ;
et
id.getElementsByTagName('input')[0].disabled="enable" ;
mais san succés

Posté : 22 avr. 2009, 09:13
par Invité
Bon problème résolu avec :

id.getElementsByTagName('input')[0].disabled=true"; 
id.getElementsByTagName('input')[0].disabled=false ;