Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Evento onchange da DOM

  1. #1

    Evento onchange da DOM

    Salve a tutti, ho un problema a gestire una select da DOM con l'evento onchange. Mentre con le funzioni onclick va tutto bene, l'evento onchange non ne vuole sapere.
    uso questo codice:

    codice:
            var size1 = document.getElementById("s1");   //recupero l'id dell'option
    	size1.onchange =  //aggiungo l'evento
            function(){ //creo la funzione  		           
               main.Aggiungi(d.getElementsByTagName("dimensione1")[0]);  //funzione dell'oggetto

    Al posto di onchange ho provato anche a mettere AttachEvent e AddEventListener, ma stranamente non mi fa la funzione al cambio di opzione della select, ma al caricamento della pagina!
    Devo gestire obbligatoriamente l'evento da DOM, altrimenti nell'html sarebbe stato facile

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non tutti i browser gestiscono gli eventi direttamente nelle options, probabilmente è per lo stesso motivo che non funziona.
    Aggiungi l'evento alla select e con un ciclo for o un .each() gestisci le varie options.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    ci ho provato, ma non mi riesce..puoi farmi un esempio concreto???
    Grazie 1000

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Untitled Document</title>
    <script type="text/javascript">
    function ActionSelect(val){
    var opt=document.getElementsByTagName("option");
    for (var i=0; i<opt.length; i++){
    if(opt[i].value == val.value){
    alert("option selezionata "+val.value)
    }
    }
    }
    onload=function(){
    	document.getElementById('sel1').onchange=function(){ActionSelect(this.options[this.selectedIndex]);}
    }
    </script>
    </head>
    
    <body>
    <div id="main">
    <form action="" name="nomeform" method="get">
    
    <select name="sel1" id="sel1">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
    </select>
    </form>
    </div>
    </body>
    </html>
    Esempio testato e funzionante con firefox 4 e safari 5 S.O. mac 10.6
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.