2010-01-12 3 views
1

J'ai le code suivant. Le code remplit une zone de liste basée sur la sélection effectuée. Mais mon code fonctionne sur IE 7 & échoue sur IE 6.Problème de clic unique dans IE 6

//---------------------------------------------------------------------------------------------- 
//fill the location list on the basis of Country 

function FillLocationList() 
{ 
    var opt = document.createElement("OPTION"); 
    var selected =document.getElementById('drpCountryName').selectedIndex; 
    var size = document.getElementById('drpCountryName').options.length; 
    if(!event.ctrlKey && !event.shiftKey) 
    { 

     document.getElementById('drpLocation').options.length = 0; 
     for(var i=0;i<locationArray.value.length;i++) 
     { 

      //if(document.getElementById('drpLocationReportsTo').value == locationArray.value[i].LocationRptId) 
      if(document.getElementById('drpCountryName').value == locationArray.value[i].CountryCode) 
      { 
       opt = document.createElement("OPTION"); 
       opt.text = locationArray.value[i].LocationName; 
       opt.value=locationArray.value[i].LocationId; 
       document.getElementById("drpLocation").options.add(opt); 
      } 
     } 

    } 


    else if(event.ctrlKey || event.shiftKey) 
    { 

     document.getElementById('drpLocation').length = 0; 
     for(j=0;j<document.getElementById('drpCountryName').length;j++) 
     { 
      var currentLocation = document.getElementById('drpCountryName').options[j].value; 
      if(document.getElementById('drpCountryName').options[j].selected) 
      { 
       for(var i=0;i<locationArray.value.length;i++) 
       { 

        if(currentLocation == locationArray.value[i].CountryCode) 
        { 
         opt = document.createElement("OPTION"); 
         opt.text = locationArray.value[i].LocationName; 
         opt.value=locationArray.value[i].LocationId; 
         document.getElementById("drpLocation").options.add(opt); 
        } 
       } 
      } 
     } 

    } 

} 
+0

Où échoue-t-il exactement? –

+0

Fonctionne pour moi dans IE6, test complet s'il vous plaît. Notez cependant que 'options.add' est une méthode non standard qui ne fonctionnera pas en dehors de IE (utilisez par exemple' options [options.length] = opt' à la place) et l'utilisation de 'event' globale est IE-only (et probablement déconseillé dans tous les cas). – bobince

Répondre

1

est la fonction tiré sous IE6? Parce qu'un problème commun consiste à attacher la fonction à l'événement onclick (qui a des problèmes sous IE6).

Utilisez plutôt onchange.

+0

Je n'ai pas utilisé onClick – Janmejay

0

Si vous utilisez l'onclick dans IE6, essayez ceci, et bien si vous ne le faites pas déjà de cette façon. IE6 a quelques problèmes avec les fonctions javascript de tir dans l'événement onclick.

onclick = "FillLocationList(); event.returnValue = false; return false;"

+0

Il semble que ce soit un problème intermittent aussi, dans certaines pages, je viens de faire retourner false; et ça marche bien. Dans d'autres cas, cela ne fonctionne pas, donc je dois utiliser ce travail. N'aimes-tu pas IE6? –

+0

J'ai trouvé qu'un certain délai ou un chemin d'exécution interne différent provoque ces problèmes intermittents. –

+0

Intéressant, je ferai attention à la trajectoire d'exécution la prochaine fois que je rencontrerai le problème. Merci. –