5 messaggi dal 04 luglio 2006
Buongiorno a tutti,
ho un problema con la creazione dinamica di una select.
Il browser su cui deve girare è IE6.

La select viene renderizzata (senza l'attributo del nome) ma la funzione onchange non viene invocata.

Sto usando la seguente funzione:

function createSelect()
{
//creo una DIV
this.div=document.createElement("div");
var t=document.createElement("table");
var tr=document.createElement("tr");
var td=document.createElement("td");
//creo un oggetto SELECT
this.select=document.createElement("select");

this.select.name="mySelect";
//assegno delle OPTIONS
for(var i=0; i<5;i++)
this.select.options[this.select.options.length]=new Option("Text"+i, "Value"+i);

//assegno la funzione onchange
this.select.onchange=function(){alert(1);}

//aggiungo la SELECT al TD
td.appendChild(this.select);

//aggiungo il TD alla riga
tr.appendChild(td);

//aggiungo la riga alla tabella
t.appendChild(tr);

//aggiungo la tabella alla DIV
this.div.appendChild(t);

//Aggiungo la DIV al BODY
document.body.appendChild(this.div);

//AGGIUNGENDO QUESTA RIGA, LA SELECT COMPARE
document.body.innerHTML+="";
}

<body onload="new createSelect()">

</body>

Ci sto lavorando da svariate ore ma non riesco a venirne a capo.
Qualcuno sa dirmi cosa c'è di sbagliato nel codice?
Grazie,
Massimiliano
5 messaggi dal 04 luglio 2006
Risolto:

nella fase di creazione dinamica della table mancava la creazione del TBODY.

Aggingendolo, il contenuto viene renderizzato correttamente senza bisogno di aggiungere 'sta zozzeria:

>document.body.innerHTML+="";

Aggiungendo la quale, l'evento onchange della select smette misteriosamente di funzionare.

Max

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.