Tengo un código JS en el que cuando cambias un campo llama a una rutina de búsqueda. El problema es que no puedo encontrar ningún evento jQuery que se active cuando Datepicker actualiza el campo de entrada.
Por alguna razón, no se llama a un evento de cambio cuando Datepicker actualiza el campo. Cuando aparece el calendario, cambia el enfoque, así que tampoco puedo usarlo. ¿Algunas ideas?
jquery
datepicker
zbestzeus
fuente
fuente
Respuestas:
Puedes usar el
onSelect
evento datepicker .Ejemplo en vivo :
Mostrar fragmento de código
Desafortunadamente, se
onSelect
dispara cada vez que se selecciona una fecha, incluso si no ha cambiado. Esta es una falla de diseño en el selector de fechas: siempre se disparaonSelect
(incluso si nada ha cambiado), y no dispara ningún evento en la entrada subyacente en el cambio. (Si observa el código de ese ejemplo, estamos escuchando los cambios, pero no se están generando). Probablemente debería disparar un evento en la entrada cuando las cosas cambian (posiblemente elchange
evento habitual , o posiblemente un selector de fecha- uno específico).Si lo desea, por supuesto, puede hacer que el
change
evento en elinput
fuego:Eso se disparará
change
en el subyacenteinput
para cualquier controlador conectado a través de jQuery. Pero de nuevo, siempre lo dispara. Si solo desea activar un cambio real, deberá guardar el valor anterior (posiblemente a través dedata
) y comparar.Ejemplo en vivo :
Mostrar fragmento de código
fuente
change
manejadores" y actualicé la respuesta con eso. :-)La respuesta de TJ Crowder ( https://stackoverflow.com/a/6471992/481154 ) es muy buena y sigue siendo precisa. Activar el evento de cambio dentro de la función onSelect es lo más cercano que va a llegar.
Sin embargo, hay una buena propiedad en el objeto datepicker (
lastVal
) que le permitirá activar condicionalmente el evento de cambio solo en cambios reales sin tener que almacenar los valores usted mismo:Luego solo maneje los eventos de cambio como lo normal:
fuente
lastVal
sin embargo es ;-)lastVal
no existe en el objeto datepicker, al menos en mis pruebas. Entonces esta solución siempre activará el cambio.Está buscando el evento onSelect en el objeto datepicker:
fuente
Escribí esto porque necesitaba una solución para activar un evento solo si la fecha cambiaba.
Es una solución simple. Cada vez que se cierra el cuadro de diálogo, probamos para ver si los datos han cambiado. Si es así, activamos un evento personalizado y restablecemos el valor almacenado.
Ahora podemos conectar controladores para ese evento personalizado ...
fuente
fuente
Estoy usando bootstrap-datepicker y ninguna de las soluciones anteriores funcionó para mí. Esta respuesta me ayudó ...
el evento de fecha de cambio de selector de fecha de arranque no se activa al editar fechas manualmente o borrar la fecha
Esto es lo que apliqué:
Espero que esto pueda ayudar a otros.
fuente
En jQueryUi 1.9 he logrado que funcione a través de un valor de datos adicional y una combinación de las funciones beforeShow y onSelect:
Funciona para mi :)
fuente
Sé que esta es una vieja pregunta. Pero no pude hacer que el evento jquery $ (this) .change () se active correctamente en Select. Así que seguí el siguiente enfoque para activar el evento de cambio a través de vanilla js.
fuente
Prueba esto
Espero que esto ayude:)
fuente
Tratar :
fuente
El manual dice:
Entonces:
Funciona para mi.
fuente
Mi soluthion:
fuente
Mi solución es:
fuente
Código de evento de cambio de valor seleccionado de DatePicker a continuación
fuente
si estás usando wdcalendar esto te ayudará
el evento onReturn me funciona
espero que esto ayude
fuente
Creo que su problema puede estar en cómo se configura su selector de fechas. ¿Por qué no desconecta la entrada? No use altField. En su lugar, establezca explícitamente los valores cuando se active onSelect. Esto te dará el control de cada interacción; el campo de texto del usuario y el selector de fecha.
Nota: a veces debe llamar a la rutina en .change () y no en .onSelect () porque onSelect se puede invocar en diferentes interacciones que no espera.
Pseudocódigo:
fuente