11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

j'essaie de gérer un select dynamique contenant des Optgroup.

Pour ajouter un Option, je fais :
var loption = document.createElement("option" );
loption.setAttribute('value','ma valeur');
loption.appendChild(document.createTextNode('mon texte à afficher'));
opg.appendChild(loption);


opg étant l'OPTGROUP auquel je veux rajouter un element


ca marche mais mon option sera toujours ajouté à la fin de mon groupe.
Comment faire pour insérer mon option à un endroit précis ?

merci
Modifié par sebhm (06 Nov 2008 - 15:04)
ben je fais comme ca


var loption = document.createElement("option" );
loption.setAttribute('value','MA VALEUR');
loption.appendChild(document.createTextNode('MON TEXTE'));

// on cherche l'option avant laquelle insérer .... on la recupere dans 'loptiondapres'
//on a également (optionnel) récupéré l'OPTGROUP dans lequel insérer notre Option dans 'opg_dst'

opg_dst.insertBefore(loption, loptiondapres);



si ca peut aider qqn
et bien M****E alors ...
Smiley fache
ca marche sous FF mais pas sous IE ...

enfin, ca marche pas... Si ! mais pas bien ... :

en fait, l'ajout d'un <option> se fait bien mais IE ne redimensionne pas le <select>... du coup, on ne lit pas correctement ce qui a été ajouté.
alors que FF redimensionne aussitot le <select>

en bataillant un peu, si j'ajoute un
alert('toto');
apres mon
appenchild
, et bien IE est content et redimensionne mon <select>.... comme s'il lui fallait un peu de temps...

je comprends pas comment faire (ca m'arrange pas un 'alert' pour rien).

(et meme si ca doit être corrigeable en magouillant, pourquoi ce comportement ??)