Salut,

Alors voilà j'ai un problème peut être bête pour certains mais c'est entrain de me rendre dingue et je ne comprend pas pourquoi

Tout d'abord voici mon code javascript concerné :

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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
function re_test(cr)
{
	var valeur_cr = cr.options[0].getAttribute('value');
	alert(valeur_cr);
	if(valeur_cr != '0000')
		demande('UF', cr, document.getElementById('req_uf'));	
	return false;
}
 
function test_pole(pole)
{
	var i = 0;
	if(pole.options[pole.selectedIndex].value != '0000')  
	{ 
		var cr = document.getElementById('req_cr');
		demande('CR', pole ,document.getElementById('req_cr')); 
		return true;
	} 
	else 
	{ 
		document.getElementById('req_cr').innerHTML = null; 
		document.getElementById('req_cr').style.display = 'none'; 
		document.getElementById('req_uf').innerHTML = null; 
		document.getElementById('req_uf').style.display = 'none'; 
		return false;
	}	
}
 
function demande(type, choix, liste2)
{
	var valeur = choix.options[choix.selectedIndex].value;
	var xhr = getXHR();
 
 
 
	xhr.onreadystatechange = function() 
	{
		if(xhr.readyState == 4 && (xhr.status === 200 || xhr.status == 0))
		{
			if(type == 'CR')
			{
				document.getElementById('req_uf').innerHTML= "";
				document.getElementById('req_uf').style.display = "none";
			}
			if((type == 'UF') && (valeur == '0000'))
			{
				document.getElementById('req_uf').innerHTML = "";
				document.getElementById('req_uf').style.display = "none";
				return false;
			}
			liste2.style.display = "inline";
			lireResultat(xhr.responseXML, liste2);
		}
		else
		{
			liste2.style.display = "none";
		}
	};
 
	xhr.open("GET", "listes.php?liste1="+valeur+"&type="+type, true);
	//xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xhr.send(null);
	return true;
}
 
function lireResultat(reponse, liste2)
{
	liste2.innerHTML=null;
	var nodes = reponse.getElementsByTagName("item");
	var oOption, oInner, i, c=nodes.length;
	liste2.innerHtml = "";
 
	for(i=0; i<c; i++)
	{
		oOption = document.createElement("option");
		if(nodes[i].getAttribute("id") == '0000')
		{
			oInner = document.createTextNode(" ");
		}
		else
		{
			oInner = document.createTextNode(nodes[i].getAttribute("id") + " - " +nodes[i].getAttribute("name"));
		}
		oOption.setAttribute('value',nodes[i].getAttribute("id"));
 
		oOption.appendChild(oInner);
		liste2.appendChild(oOption);
	}
	return false;
 
}
J'appel ma fonction comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<select id="req_pole" name="req_pole" onchange="if(test_pole(this)) re_test(document.getElementById('req_cr')); " >
Or ici il s'agit de simples listes liées mais lorsque je l'exécute cela ne fonctionne pas...

Par contre si je met un alert("toto") dans la fonction re_test() cela fonctionne. Je ne comprend vraiment pas pourquoi ???

Le code qui fonctionne est celui ci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
function re_test(cr)
{
alert("toto"); <=== ICI
	var valeur_cr = cr.options[0].getAttribute('value');
	alert(valeur_cr);
	if(valeur_cr != '0000')
		demande('UF', cr, document.getElementById('req_uf'));	
	return false;
}
Pouvez vous m'aider à comprendre ce problème ?

Dans l'attente,
Merci d'avance,