[Javascript / jQuery] 2 onchange sur Select.. [Résolu/Fermé]

Signaler
Messages postés
150
Date d'inscription
jeudi 27 mai 2010
Statut
Membre
Dernière intervention
14 mai 2018
-
reaverlost
Messages postés
150
Date d'inscription
jeudi 27 mai 2010
Statut
Membre
Dernière intervention
14 mai 2018
-
Bonjour,

Je souhaiterai, sur une même balise Select, placer 2 évènements "OnChange". J'ai lu sur le Net qu'on pouvait le faire en faisant une fonction globale qui réunissait plusieurs fonctions...
J'ai donc fais ça :

<script type="text/javascript">
	
var lesOptions2  = new Array('<option value="Hotel/Guest House classique">Hotel/Guest House classique</option>'
         +'<option value="Hotel/Guest House supérieur">Hotel/Guest House supérieur</option>'
         +'<option value="Hotel/Guest House de luxe">Hotel/Guest House de luxe</option>',
	 '<option value="Camping">Camping</option>'
								  +'<option value="Lodge classique">Lodge classique</option>'
         +'<option value="Lodge supérieur">Lodge supérieur</option>',
	 '<option value="aucun"> --- Sélectionnez un hébergement --- </option>');
								  
	var lesOptions3 = new Array ('<option value="Voyage Liberté 12 jours">Voyage Liberté 12 jours</option>'
	 +'<option value="Voyage Liberté 15 jours">Voyage Liberté 15 jours</option>'
	+'<option value="Voyage Excellence">Voyage Excellence</option>'
	 +'<option value="Voyage en groupe - Circuit Essentiel">Voyage en groupe - Circuit Essentiel</option>'
	  +'<option value="Voyage en groupe - Circuit Harmonie">Voyage en groupe - Circuit Harmonie</option>',
	 '<option value="Circuit Harmonie">Circuit Harmonie</option>'
 +'<option value="Autotour Sensation 4x4 et Camping">Autotour Sensation 4x4 et Camping</option>'
+'<option value="Safari itinérant">Safari itinérant</option>',
 '<option value="aucun">--- Sélectionnez un circuit ---</option>');
			  
			  function changer1_2()
			  {
			
				function changer(tag, valeurOption) 
				{ 
					switch(valeurOption)
					{
						case "Afrique du Sud":
							$("#"+tag).html(lesOptions2[0]);
						break;
				  
						case "Zimbabwe":
							$("#"+tag).html(lesOptions2[1]);
						break;
				  
						case "Botswana":
							$("#"+tag).html(lesOptions2[1]);
						break;
				  
						case "Zambie":
							$("#"+tag).html(lesOptions2[1]);
						break;
					  
						case "Namibie":
							$("#"+tag).html(lesOptions2[1]);
						break;
					  
						case "aucun":
							$("#"+tag).html(lesOptions2[2]);
						break;
					  
						default : break;
					}	
				}
				
				function changer2(tag2, valeurOption2) 
				{ 
					switch(valeurOption2)
					{
						case "Afrique du Sud":
							$("#"+tag2).html(lesOptions3[0]);
						break;
						
						case "Namibie":
							$("#"+tag2).html(lesOptions3[1]);
						break;
												  
						case "Botswana":
							$("#"+tag2).html(lesOptions3[1]);
						break;
						
						case "Zambie":
							$("#"+tag2).html(lesOptions3[1]);
						break;
						
						case "Zimbabwe":
							$("#"+tag2).html(lesOptions3[0]);
						break;
					
						case "aucun":
							$("#"+tag2).html(lesOptions3[2]);
						break;
					
						default : break;
					}
				}
			}
</script>


<select name="objet" id="objet" class="normal"
onchange="changer1_2(changer('hebergement',this.options[this.selectedIndex].value),
changer2('circuit',this.options[this.selectedIndex].value);"
<option value="aucun"> --- Sélectionnez une destination --- </option>
<option value="Afrique du Sud">Afrique du Sud</option>
<option value="Namibie">Namibie</option>
<option value="Botswana">Botswana</option>
<option value="Zimbabwe">Zimbabwe</option>
<option value="Zambie">Zambie</option>
</select>

<select name="circuit" id="circuit" class="normal">
</select>

<select name="hebergement" id="hebergement" class="normal" >
</select>


Seulement ça ne marche pas... Je pense à un problème de syntaxe, ou mes fonctions qui sont peut-être mal écrites.

Si vous avez une idée, je suis preneur.

Merci :)

1 réponse

Messages postés
150
Date d'inscription
jeudi 27 mai 2010
Statut
Membre
Dernière intervention
14 mai 2018
21
J'ai trouve. Je mets la solution pour ceux qui en auraient besoin à l'avenir :

var lesOptions2 = new Array ('<option value="Hotel/Guest House classique">Hotel/Guest House classique</option>'
                +'<option value="Hotel/Guest House supérieur">Hotel/Guest House supérieur</option>'
                +'<option value="Hotel/Guest House de luxe">Hotel/Guest House de luxe</option>'
				+'<option value="Camping">Camping</option>',
								  
			    '<option value="Camping">Camping</option>'
				+'<option value="Lodge classique">Lodge classique</option>'
                +'<option value="Lodge supérieur">Lodge supérieur</option>',
								  
				'<option value="aucun"> --- Sélectionnez un hébergement --- </option>');
								  
			function changer (tag, valeurOption) 
				{ 
					switch(valeurOption)
					{
						case "Afrique du Sud":
							$("#"+tag).html(lesOptions2[0]);
						break;
				  
						case "Zimbabwe":
							$("#"+tag).html(lesOptions2[1]);
						break;
				  
						case "Botswana":
							$("#"+tag).html(lesOptions2[1]);
						break;
				  
						case "Zambie":
							$("#"+tag).html(lesOptions2[1]);
						break;
					  
						case "Namibie":
							$("#"+tag).html(lesOptions2[1]);
						break;
					  
						case "aucun":
							$("#"+tag).html(lesOptions2[2]);
						break;
					  
						default : break;
					}	
				}
			
			  
			var lesOptions3 = new Array ('<option value="Voyage Liberté 12 jours">Voyage Liberté 12 jours</option>'
	  		+'<option value="Voyage Liberté 15 jours">Voyage Liberté 15 jours</option>'
			  +'<option value="Voyage Excellence">Voyage Excellence</option>'
			  +'<option value="Voyage en groupe - Circuit Essentiel">Voyage en groupe - Circuit Essentiel</option>'
			  +'<option value="Voyage en groupe - Circuit Harmonie">Voyage en groupe - Circuit Harmonie</option>',
			  
			  '<option value="Circuit Harmonie">Circuit Harmonie</option>'
			  +'<option value="Autotour Sensation 4x4 et Camping">Autotour Sensation 4x4 et Camping</option>',
			  
			  '<option value="Circuit Harmonie">Circuit Harmonie</option>'
			  +'<option value="Autotour Sensation 4x4 et Camping">Autotour Sensation 4x4 et Camping</option>'
			  +'<option value="Safari itinérant">Safari itinérant</option>',
			  
			  '<option value="aucun">--- Sélectionnez un circuit ---</option>');
				
				function changer2 (tag2, valeurOption2) 
				{ 
					switch(valeurOption2)
					{
						case "Afrique du Sud":
							$("#"+tag2).html(lesOptions3[0]);
						break;
						
						case "Namibie":
							$("#"+tag2).html(lesOptions3[0]);
						break;
												  
						case "Botswana":
							$("#"+tag2).html(lesOptions3[2]);
						break;
						
						case "Zambie":
							$("#"+tag2).html(lesOptions3[1]);
						break;
						
						case "Zimbabwe":
							$("#"+tag2).html(lesOptions3[2]);
						break;
					
						case "aucun":
							$("#"+tag2).html(lesOptions3[3]);
						break;
					
						default : break;
					}
				}

<select name="objet" id="objet" class="normal" onchange="changer('hebergement', this.options[this.selectedIndex].value); changer2('circuit', this.options[this.selectedIndex].value)">


Voila :)