[AJAX] Evènement Onchange sur IE7 et AJAX
Bonjour à tous,
J'ai un problème que j'espère trouvera sa solution avec vous.
J'ai une liste déroulante qui est remplie par AJAX et dont l'évènement onchange fonctionne très bien sur IE6 et mozilla firefox. Mais malheureusement sous IE7, lorsque je déroule la liste elle se referme aussitôt à peine que j'ai pointé la souris sur un élément. Je n'ai même pas le temps de parcourir toute la liste avec la souris que la liste se referme. Voici la fonction appelée dans l'événement onchange :
Code:
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
| function controleType(obj,chamsel,i,url){
var xhr;
var champ=obj.value;
var chcom;
var op2;
var vam;
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP"); // essayer Internet Explorer
}
catch(e) // Echec
{
xhr = new XMLHttpRequest()
}
url = url+champ;
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
var chaine = xhr.responseText;
var tableau= chaine.split("@");
var typech=tableau[0];
alert(chaine);
if (chamsel=='id_champ'){
chcom=document.getElementById("id_champ_comparaison_"+i);
op2=document.getElementById("operateur2_"+i);
vam=document.getElementById("variable_metier_"+i);
var ami = document.getElementById("chk_"+i);
var chkCourant = document.getElementById(ami.value);
if(typech.trim() == 'DATE' || chkCourant.checked==true){
chcom.disabled=false;
op2.disabled=false;
vam.disabled=false;
}
else{
chcom.disabled=true;
op2.disabled=true;
vam.disabled=true;
}
}
else if(chamsel=='type_champ'){
var long_min=document.getElementById("longueur_champ_min_"+i);
var long_max=document.getElementById("longueur_champ_max_"+i);
var valeur_min=tableau[1];
var valeur_max=tableau[2];
var valeur_modif=tableau[3];
if(valeur_min!="" || valeur_min!=null)
long_min.value=valeur_min;
if(valeur_max!="" || valeur_max!=null)
long_max.value=valeur_max;
if(valeur_modif==0){
long_min.readOnly=true;
long_max.readOnly=true;
}
}
}
}
xhr.open("GET",url,true);
xhr.send(null);
} |
Toute aide sera la bienvenue, merci d'avance !!