Foros del Web » Programando para Internet » Javascript »

evento onchange

Estas en el tema de evento onchange en el foro de Javascript en Foros del Web. Hola, estoy construyendo un filtro que me muestra en una tabla los resultados. El filtro se activa mediante el evento onchange de los elementos del ...
  #1 (permalink)  
Antiguo 11/06/2007, 08:20
 
Fecha de Ingreso: marzo-2007
Mensajes: 58
Antigüedad: 17 años, 10 meses
Puntos: 0
evento onchange

Hola,
estoy construyendo un filtro que me muestra en una tabla los resultados.
El filtro se activa mediante el evento onchange de los elementos del formulario.
Uno de los elementos es un input que recibe fechas: le he colocado al lado un date-picker para facilitar la introducción de los valores.
Ahora, con el date-picker, resulta que al seleccionar una fecha no se produce el evento onchange y, por lo tanto, no se actualiza el filtro.
El html es básicamente el siguiente:

Código:
<form id='searchfrm'>
<input type='text' onchange='buscar();' id='nombre'>
<input type='text' onchange='buscar();' id='fecha'><img src='datepicker.png' onclick='calendar('fecha');'></img>
<input type='text' onchange='buscar();' id='valor'>
</form>
¿Se os ocurre alguna manera de solucionar esto?
Gracias
  #2 (permalink)  
Antiguo 12/06/2007, 17:56
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 11 meses
Puntos: 9
Re: evento onchange

a la salida de la funcion calendar pones una llamada a la funcion del filtro
  #3 (permalink)  
Antiguo 14/06/2007, 06:00
 
Fecha de Ingreso: marzo-2007
Mensajes: 58
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: evento onchange

Ya, pero entonces la función calendar no me sirve para otros formularios, por ejemplo el de la introducción de datos.

He probado hacer una llamada a la función buscar() en el evento onclick pero no funciona bien: ejecuta el filtro cuando haces click por segunda vez.

Código:
<input type='text' onchange='buscar();' id='fecha'>
<img src='datepicker.png' onclick='calendar('fecha');buscar()'></img>
  #4 (permalink)  
Antiguo 14/06/2007, 14:00
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 11 meses
Puntos: 9
Re: evento onchange

Mira(me acabo de dar cuenta), esta linea tiene dos errores, y uno de ellos es el que provoca el fallo

<img src='datepicker.png' onclick='calendar('fecha');buscar()'></img>

estas utilizando mal las comillas, no deberia haber comillas simples dentro de comillas simples... ni dobles dentro de comillas dobles, lo habitual es combinarlas:

Código PHP:
onclick="calendar('fecha');buscar()"
 
onclick='calendar("fecha");buscar()' 
Revisa tu codigo por si tienes mas fallos de este tipo.


el otro es que las imagenes no tienen etiqeta de cierre, aunque esto no provoca ningun error.

Saludos
  #5 (permalink)  
Antiguo 15/06/2007, 08:46
 
Fecha de Ingreso: marzo-2007
Mensajes: 58
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: evento onchange

He revisado el código y pienso que ahora es correcto pero sigue sin funcionar como yo esperaba.

Lo que me sorprende es que parece no ejecutar las dos funciones de manera secuencia.
El hecho es que si hago click en la imagen cuando el campo input está vacío, me muestra el calendar pero cuando selecciono una fecha no ejecuta la función buscar().
En cambio, cuando el input contiene un valor, al hacer click en la imagen, a la vez que se muestra el calendar se ejecuta la función buscar con el valor actual del input (no actualizado pues todavía no he seleccionado nada en el calendar).

Código:
onclick='calendar("fecha");buscar()'
¿Se os ocurre algún modo de asegurar que las dos funciones se ejecutarán secuencialmente?
  #6 (permalink)  
Antiguo 15/06/2007, 16:20
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 11 meses
Puntos: 9
Re: evento onchange

puedes crear una funcion con esas dos intrucciones, y llamarla en el onclick. ,asi puedes controlar mejor la ejecucion.

Cita:
onclick="calBus()"
Cita:
function calBus()
{
calendar("fecha")
buscar()
}
De todas formas es extraño.
  #7 (permalink)  
Antiguo 18/06/2007, 07:55
 
Fecha de Ingreso: marzo-2007
Mensajes: 58
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: evento onchange

Me parece que ya comprendo lo que ocurre: con el evento onChange se lanza primero la función calendar que crea un objeto y seguidamente la función buscar pero no encuentra valor porque todavía no se ha seleccionado una fecha desde el objeto calendario.

Por lo tanto, pienso que lo más eficaz será seguir la primera sugerencia que se hizo en este tema, y modificar la función calendar añadiendo al final un bucle if.

Cita:
Iniciado por programeitor Ver Mensaje
a la salida de la funcion calendar pones una llamada a la funcion del filtro
Muchas gracias por vuestro tiempo.
  #8 (permalink)  
Antiguo 18/06/2007, 16:43
Avatar de webosiris
Moderador egiptólogo
 
Fecha de Ingreso: febrero-2002
Ubicación: Luxor, Egipto
Mensajes: 10.725
Antigüedad: 22 años, 11 meses
Puntos: 998
Re: evento onchange

muevo a javascript desde html
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 01:18.