Bonjour!
Alors voila je vous expose mon soucis:

J'ai un formulaire d'inscription avec une liste de pays, liée à une liste de régions.
Quand j'affiche la page pur la première fois tout baigne, ça récupère le pays par défaut et affiche la liste des régions correspondantes.

Cependant il est possible que l'utilisateur fasse des erreurs lors de sa saisie, ce qui entraînera un rechargement de la page. Or je veux faire en sorte que si rechargement il y à, la région choisie s'affiche, au lieu de la première région de la liste.

Pour lier mes listes déroulantes, j'ai fait un peu comme sur la faq, a savoir vider la liste de base et la remplacer par le contenu d'un tableau. La liste de base contient l'intégralité des régions de tous les pays.
Donc, ce que je fais, c'est que si il y à eu erreur dans la saisie, je l'indique à la fonction qui va alors, avant de vider la liste, récupérer le selectedindex de ma liste de base. Ensuite, au moment du remplissage, je compare cette valeur à celles de mon tableau, et je stocke l'index quand ça correspond. Index que je place en selectedindex ensuite.

Mon problème est le suivant: Si au premier chargement de la page je n'ai aucun problème, au rechargement, IE m'affiche une erreur JS o_o

listeDeroulante.option à la valeur Null ou n'est pas un objet
Cela plante à la ligne que j'ai marqué d'une * dans la source suivante. Mais fait étrange, si j'enlève cette ligne, alors cela plante sur la ligne que j'ai marqué de deux *! Alors que celle-ci est pourtant aussi utilisée lors du premier chargement!

Auriez-vous une idée s'il vous plaît?

Voila le code:

elem1 = id de la première liste déroulante (les pays)
elem1 = id de la seconde liste déroulante (les régions)
recharge = 1 ou 0 selon si on recharge la page ou non

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
		function Choix(elem1, elem2, recharge) 
		{
			i = document.getElementById(elem1).selectedIndex; 
 
			listeDeroulante = document.getElementById(elem2);
 
			if(recharge)
			{
				 valDef = listeDeroulante.options[listeDeroulante.selectedIndex].text; *
			}
 
			switch (i)
			{				
				//Belgique
				case 0 :
				{
					var txt = new Array ('Anvers','Brabant-Wallon','Bruxelles','Flandre-Occidentale','Flandre-Orientale','Hainaut','Limbourg','Liège','Luxembourg','Namur');
					break;
				}
 
				//Canada
				case 1 :
				{
					var txt = new Array ('Alberta','Colombie-Britannique','Ile-du-Prince-Edouard','Manitoba','Nouveau-Brunswick','Nouvelle-Ecosse','Nunavut','Ontario','Québec','Saskatchewan','Terre-Neuve-et-Labrador','Territoires du Nord-Ouest','Yukon');
					break;
				}
 
				//France
				case 2 :
				{
					var txt = new Array ('Ain','Aisne','Allier','Alpes-Maritimes','Alpes-de-Haute-Provence','Ardennes','Ardèche','Ariège','Aube','Aude','Aveyron','Bas-Rhin','Bouches-du-Rhône','Calvados','Cantal','Charente','Charente-Maritime','Cher','Corrèze','Corse-du-Sud','Creuse','Côte-d`Or','Côtes-d`Armor','Deux-Sèvres','Dordogne','Doubs','Drôme','Essonne','Eure','Eure-et-Loir','Finistère','Gard','Gers','Gironde','Guadeloupe','Guyane','Haut-Rhin','Haute-Corse','Haute-Garonne','Haute-Loire','Haute-Marne','Haute-Savoie','Haute-Saône','Haute-Vienne','Hautes-Alpes','Hautes-Pyrénées','Hauts-de-Seine','Hérault','Ille-et-Vilaine','Indre','Indre-et-Loire','Isère','Jura','Landes','Loir-et-Cher','Loire','Loire-Atlantique','Loiret','Lot','Lot-et-Garonne','Lozère','Maine-et-Loire','Manche','Marne','Martinique','Mayenne','Mayotte','Meurthe-et-Moselle','Meuse','Morbihan','Moselle','Nièvre','Nord','Nouvelle-Calédonie','Oise','Orne','Paris','Pas-de-Calais','Polynésie_Française','Puy-de-Dôme','Pyrénées-Atlantiques','Pyrénées-Orientales','Rhône','Réunion','Saint-Piere-et-Miquelon','Sarthe','Savoie','Saône-et-Loire','Seine-Maritime','Seine-Saint-Denis','Seine-et-Marne','Somme','Tarn','Tarn-et-Garonne','TerritoiredeBelfort','Val-d`Oise','Val-de-Marne','Var','Vaucluse','Vendée','Vienne','Vosges','Wallis-et-Futuna','Yonne','Yvelines');
					break;
				}
 
				//Luxembourg
				case 3 :
				{
					var txt = new Array ('Diekirch','Grevenmacher','Luxembourg');
					break;
				}
 
				//Monaco
				case 4 :
				{
					var txt = new Array ('Monaco');
					break;
				}
 
				//Suisse
				case 5 :
				{
					var txt = new Array ('Appenzell','Argovie','Berne','Bâle_campagne','Bâle_ville','Fribourg','Genève','Glaris','Grisons','Jura','Lucerne','Neuchâtel','Nidwald','Obwald','Saint-Gall','Schaffhouse','Schwyz','Soleure','Tessin','Thurgovie','Uri','Valais','Vaud','Zoug','Zürich');
					break;
				}
			}
 
			listeDeroulante.options.length = 0; **
			for (j = 0; j < txt.length; j++)
			{
				listeDeroulante.options[j] = new Option(txt[j],txt[j]);
				if((recharge)&&(valDef == txt[j]))
				{valAct = j;}
			}
 
			if(recharge)
			{
				listeDeroulante.selectedIndex = valAct;
			}
		}

Edit: Désolé j'ai oublié les *