Tag "option" ed evento "onClick" su Internet Explorer
giugno 26, 2008
Sulla falsariga del post di ieri, continuo ad appuntarmi i problemi incontrati con JS su Internet Explorer, nella speranza che quanto scritto possa servire, prima o poi, a qualcuno.
Internet Explorer, perlomeno nella versione 6, non supporta la sintassi che segue:
<select id="do">
<option onclick="do(this)" value="Do This"> Do This </option>
<option onclick="do(this)" value="Do That"> Do That </option>
</select>
La soluzione viene dalla sintassi
<select id="do" onchange="do( this.value )">
<option value="Do This"> Do This </option>
<option value="Do That"> Do That </option>
</select>
ossia dallo spostamento dell’evento dal singolo elemento all’elemento select padre. La funzione dovrà essere ovviamente invocata non più utilizzando this come argomento, ma this.value, ovverosia l’attributo value dell’opzione selezionata. Tale funzione avrà una forma simile a quanto segue:
function do( optionValue )
{
switch( optionValue )
{
case "Do This" :
// SPECIFIC CODE HERE
break;
case "Do That" :
// SPECIFIC CODE HERE
break;
}
}
via matthom
Peccato però che onchange non funzioni sulla select. Per lo meno, io l’ho provato su explorer 7 e non combina assolutamente nulla. Su FF invece funziona.
Appena testato su IE7, funzionante! Puoi postarmi il tuo codice?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<title>Test</title>
</head>
<body>
<div id="main">
<form>
<select name="test" onchange="alert(this.value);">
<option value="1">1</option>
<option value="2">2</option>
</select>
</form>
</div>
</body>
</html>
Grazie per la dritta …
Avevo il dubbio che ie6/7 non supportasse questa funzione, cercando in rete tu mi hai dato la conferma.
Grazie ancora
Grazie mille, avevo proprio un problema di questo genere e non capivo il motivo.
Cmq questo problema conferma la prima teoria del web, e cioé che ie crea solo casini!
Grazie mille!!!!
Grazie mille!!!!
grazie mille, tanto chiaro quanto utile!
grazie mille, tanto chiaro quanto utile!
lo sospettavo, grazie per la conferma…
IE6 DEVE MORIRE!!!!!!!!!!
lo sospettavo, grazie per la conferma…
IE6 DEVE MORIRE!!!!!!!!!!