Bonjour,

Je rencontre un problème lors de la suppression du dernier élément d'une liste :
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
function suppr_element(nom_form,liste,elt) 
{
	// Différentes valeurs possible de elt
	// elt = "n" => tous les éléments de la liste
	// elt = une valeur
	// elt = un tableau
 
	var listeObj = document.forms[nom_form].elements[liste].options;
 
	try{
 
		if (elt == "n")
		{
			listeObj.length = 0;
		}
		else
		{
			if (!is_array(elt))
			{
				listeObj[elt] = null;
			}
			else
				for(i=0;i<elt.length;i++)
					listeObj.remove(elt[i]);
		}
 
	}catch(err){	texte_err = "Une exception s'est produite lors de l'exécution de la fonction suppr_element()\n\n";
					texte_err+= "Valeurs des paramètres : nom_form=>"+nom_form+",liste=>"+listeObj.length+",elt=>"+elt+"\n\n";
					texte_err+= "Nom de l'exception : " + err.name+"\n\n";
					texte_err+= "Message d'erreur reçu : " + err.message+"\n\n";
					texte_err+= "Merci de contacter le service Informatique.";
					alert(texte_err);}
}
Ce code génère une exception, il affiche "liste=>1143, elt=>1143" et ne peut
pas supprimer un élément sortant de la liste.
Si je rajoute un alert(listeObj.length) il m'affiche un nombre élément = 1144 et la suppression s'effectue sans problème.
Voici le code :
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
function suppr_element(nom_form,liste,elt) 
{
	// Différentes valeurs possible de elt
	// elt = "n" => tous les éléments de la liste
	// elt = une valeur
	// elt = un tableau
 
	var listeObj = document.forms[nom_form].elements[liste].options;
 
	try{
 
		if (elt == "n")
		{
			listeObj.length = 0;
		}
		else
		{
			if (!is_array(elt))
			{
				alert(listeObj.length);
				listeObj[elt] = null;
			}
			else
				for(i=0;i<elt.length;i++)
					listeObj.remove(elt[i]);
		}
 
	}catch(err){	texte_err = "Une exception s'est produite lors de l'exécution de la fonction suppr_element()\n\n";
					texte_err+= "Valeurs des paramètres : nom_form=>"+nom_form+",liste=>"+listeObj.length+",elt=>"+elt+"\n\n";
					texte_err+= "Nom de l'exception : " + err.name+"\n\n";
					texte_err+= "Message d'erreur reçu : " + err.message+"\n\n";
					texte_err+= "Merci de contacter le service Informatique.";
					alert(texte_err);}
}
Je ne peut pas laisser l'alert et là j'avoue que je comprends rien.
La gestion des exceptions de javascript a-t-elle une particularité ?

Merci de m'apporter vos suggestions.