11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour a tous
J'ai un petit problème sur mon formulaire pour afficher certains champs lorsqu'on choisi une valeur à l'aide du select :
Voici mon code js :

$(document).ready(function () {


$("input[name=debut_code]").hide();
$("input[name=fin_code]").hide();
$("input[name=code]").hide();
$("input[name=description]").hide();
$("select[name=code_entrepot]").hide();
$("input[name=quantitee]").hide();
$("input[name=lot]").hide();
$("input[name=palette]").hide();
$("input[name=date]").hide();

         $("#master_form-add2" ).change(function () {

		var d_code = $("input[name=debut_code]");
		var f_code = $("input[name=fin_code]");
		var d_desc = $("input[name=description]");
		var d_date = $("input[name=date]");
		var d_c_entrepot = $("select[name=code_entrepot]");
		var code_m = $("input[name=code]");
		
                 var l1 = $("#master_form-add2").val();	

		if(l1==1) {

		d_code.show();
		f_code.show();
		d_desc.show();
		d_c_entrepot.show();
		d_date.show();
}
else if (l1==2)
{

}
	
         });
		

	
       
});



Lorsque je sélectionne une valeur dans mon sélect, les champs de texte appropriés apparaissent, mais lorsque je sélectionne une autre valeur dans mon sélect, ces champs de texte ne disparaissent plus, que faire ??Dois je réactualiser constamment ma page ?
Merci pour votre aide !
Salut,

Je ne vois pas comment tes champs pourraient disparaitre de nouveau, vu que tu n'appelles les hide() qu'au chargement de la page et pas au moment du change().

Déjà, au lieu de faire d'appeler plusieurs fois la fonction hide() sur plein d'éléments, tu devrais simplement donner une classe spécifique aux input que tu souhaites cacher/afficher.


<input class="hide_me" name="debut_code" type="text" />


Ainsi, via jQuery il devient simple de les cibler pour tous les cacher :


$("input.hide_me").hide();


Et ensuite, dans ton change(), tu les caches tous, et tu ne fais apparaitre que ceux dont tu as besoin :


$("input.hide_me").hide();
d_code.show(); 
f_code.show(); 
d_desc.show(); 
etc…