Foros del Web » Programando para Internet » Javascript »

addEventListene o setTimeout

Estas en el tema de addEventListene o setTimeout en el foro de Javascript en Foros del Web. Buenas, desde hace mucho tiempo quiero lograr hacer lo siguiente: tengo un select que tiene valores del 1 al 10, cada vez que se selecciona ...
  #1 (permalink)  
Antiguo 02/08/2010, 11:40
Avatar de gersveo  
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 15 años, 8 meses
Puntos: 5
addEventListene o setTimeout

Buenas, desde hace mucho tiempo quiero lograr hacer lo siguiente:
tengo un select que tiene valores del 1 al 10, cada vez que se selecciona un valor debe realizar una acción (por ahora que muestre un alert con un mensaje). Desde otro formulario de acuerdo a datos que se recolectan, el valor del select se cambia con javascript (se quiere que se muestre el mensaje). Por este segundo formulario en este ejemplo hago un botón que me cambie el valor del select. He usado el metodo addEventListener pero no me funciona, actualmente uso un temporizador(setTimeout) y creo que no es la forma correcta. (El inconveniente es que el segundo formulario el de recolección de datos, no le puedo agregar codigo ni editar), cualquier ayuda o colaboración le agradesco.

Código HTML:
Ver original
  1. function abc(){
  2.     if(SelVal!=document.getElementById('selector').value){
  3.         alert("el valor es:"+document.getElementById('selector').value);
  4.         SelVal=document.getElementById('selector').value;
  5.     }
  6.     setTimeout("abc()",1000);
  7. }
  8. var SelVal=1;
  9. setTimeout("abc()",500);
  10. <select id="selector">
  11.     <option value="1">1</option>
  12.     <option value="2">2</option>
  13.     <option value="3">3</option>
  14.     <option value="4">4</option>
  15.     <option value="5">5</option>
  16.     <option value="6">6</option>
  17.     <option value="7">7</option>
  18.     <option value="8">8</option>
  19.     <option value="9">9</option>
  20.     <option value="10">10</option>
  21. <br />
  22. <input type="button" value="cambiar" onclick="document.getElementById('selector').value=7;" />
  #2 (permalink)  
Antiguo 02/08/2010, 14:51
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 14 años, 11 meses
Puntos: 1485
Respuesta: addEventListene o setTimeout

no comprendo muy bien como exactamente quieres hacerlo. si es cada vez que el usuario escoge un valor del select, entonces tienes que registar el evento onchange al elemento <select> y desde ahi invocas tu funcion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 03/08/2010, 14:42
Avatar de gersveo  
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: addEventListene o setTimeout

Cita:
Iniciado por zerokilled Ver Mensaje
no comprendo muy bien como exactamente quieres hacerlo. si es cada vez que el usuario escoge un valor del select, entonces tienes que registar el evento onchange al elemento <select> y desde ahi invocas tu funcion.
Si el usuario, elige un valor del select, pero resulta que tambien el valor del select cambia según datos recogidos de otro formulario, por eso coloque un boton que hace que el valor del select cambie.
  #4 (permalink)  
Antiguo 03/08/2010, 15:13
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 14 años, 11 meses
Puntos: 1485
Respuesta: addEventListene o setTimeout

en el boton tienes que invocar tu funcion que actualiza los <options>. si quieres registrar el evento con addEventListener, al menos tienes que esperar que el navegador cargue el boton. si lo haces antes te va dar error de que el elemento no existe. otra forma de registrar el evento es usando el modelo DOM Level 0. o sea, como atributo del elemento. esta alternativa no requiere esperar cargar el documento antes de asignar el evento.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:43.