Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2011, 11:04
Avatar de Alun
Alun
 
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 11 meses
Puntos: 4
Añadir manejadores a un campo select

Saludos:

Ando liado con un select dinámico. Para hacer el código un poco más limpio, le estoy añadiendo los manejadores de eventos mediante JavaScript. He puesto un alert para controlar que el objeto exista, y justo después, añado el manejador. El alert salta correctamente, pero no puedo añadir el manejador en cuestión, porque me la web me dice que el objeto (los option del select) no están definidos. Este es el código:

Código PHP:
 <select id="raza" name="raza">
 <option value="null">Selecciona Raza</option>
 <?php

  
for($x 0;$x $n[0];$x++)
  {
   
$raza mysql_fetch_row($query);
   echo 
"<option value=\"{$raza[0]}\">{$raza[0]}</option>";
  }
 
?>
</select>
Hasta aquí, bien, todo funciona correctamente. Aquí el js:

Código Javascript:
Ver original
  1. window.addEventListener('load',iniciar,false);
  2. var races = ''; //la pongo fuera porque la uso en más funciones
  3. function iniciar()
  4. {
  5.  races = document.getElementById("raza");
  6.  for(i = 1; i < races.options.length; i++)
  7.  {
  8.   alert(races.options[i].value); //este alert me da el valor correctamente
  9.   races.options[i].addEventListener('click',function(){clase_raza(races.options[i].value)},false); //esta línea me da fallo, dice que "races.options[i] is undefined"
  10.  }
  11. }

No entiendo por qué me toma el objeto como indefinido, si una línea más arriba me lo coge bien. ¿Me podríais decir qué pasa aquí, por favor?

Muchas gracias a todos/as.