PDA

View Full Version : creare una select tramite JS


TurboCresta
05-02-2007, 18:09
//creo la select
var sel = document.createElement("select");

//attribuisco il nome
sel.name=name;

//spero di attribuire l'evento onchange...
sel.onchange = alert('ciao');



ecco il problema è che non fa l'alert del ciao quando scatta l'evento onchange di quella select ma scatta l'alert quando arriva in quel punto del JS!

HELP!

noregret
05-02-2007, 19:55
Ciao, non funziona semplicemente perchè devi registrare l'evento tramite associazione ad una funzione, es. :

{
[CODE...]
sel.onchange = doSomething;
[CODE...]
}

function doSomething(e)
{
if (!e) var e = window.event;
alert('ciao');
}


Puoi anche passargli una funzione anonima tipo ...

sel.onchange = function() {alert('ciao');}

Non ho il tempo di provarlo, ma dovrebbe funzionare. Ti consiglio di guardare su Quirksmode (http://www.quirksmode.org/js/introevents.html) la gestione degli eventi in JS. Quirksmode (sito) e il libro pubblicato dall'autore sono ottimi per quando riguarda JS e DOM. Ciao!

P.S. Nell'esempio che hai postato manca l'aggiunta degli elementi <Option> , non so se senza di essi ti venga generato l'evento di onchange sul combobox

andbin
05-02-2007, 20:01
ecco il problema è che non fa l'alert del ciao quando scatta l'evento onchange di quella select ma scatta l'alert quando arriva in quel punto del JS!Ovvio ... quella è una assegnazione. A sel.onchange viene assegnato il risultato della chiamata alla funzione alert (che tra l'altro non ritorna nulla ... 'undefined' per essere precisi).

sel.onchange = function () {
alert ('ciao');
}Così assegni a sel.onchange una funzione che esegue l'alert.