2010-05-05 3 views
0

J'essaie de faire un formulaire dynamique en utilisant mootools 1.11, pour des raisons spécifiques, je ne peux pas améliorer atm. J'essaie de manipuler un champ de sélection pour avoir des options dynamiques. Cela fonctionne dans Firefox & Chrome mais pas IE8. J'espère qu'il y a une solution pour ça.mootools 1.11 .setHTML ne fonctionne pas dans IE

bits du code:

myOptions(hrs+1, 23, 'uur'); 
$('vertrektijd_uur').setHTML('<option value="">Kies uur</option>'+options_uur); 

$('vertrektijd_uur').addEvent('change', function() { 
      hrsChanged = $('vertrektijd_uur').getValue(); 
      hrsChanged = parseInt(hrsChanged); 
      if(hrs+1 == hrsChanged) 
      { 
       myMinutes(parseInt(min)); 
       myOptions(minChanged, 55, 'min'); 
       $('vertrektijd_min').setHTML('<option value="">Kies minuten</option>'+options_min); 
      } 
      else 
      { 
       myOptions(0, 55, 'min'); 
       $('vertrektijd_min').setHTML('<option value="">Kies minuten</option>'+options_min); 
      } 
     }); 

Répondre

0

j'ai trouvé une solution pour le problème IE. Mais maintenant j'ai un autre problème. Avec cette nouvelle méthode, les nouvelles options sont ajoutées (injectées) au lieu de remplacer les anciennes options. Il semble que j'ai besoin d'un moyen de supprimer les options avant l'injection. Mais je ne sais pas comment j'irais faire ça.

code:

var myOptions = function(start, end, field){ 

    // Remove options from select field here then do inject below ?? 

    for (var n = start; n <= end; n++){ 
     if(n < 10){ 
      new Element('option',{'value':'0'+n}).inject(field).setText('0'+n); 
     } else { 
      new Element('option',{'value':n}).inject(field).setText(n); 
     } 
    } 
} 

EDIT: Je suis en mesure de le résoudre en faisant une boucle à travers chaque option et les retirer.

var children = field.getChildren(); 
    children.each(function(option){ 
     option.remove(); 
    });