Puedes usar el onSelect
evento datepicker .
$(".date").datepicker({
onSelect: function(dateText) {
console.log("Selected date: " + dateText + "; input's current value: " + this.value);
}
});
Ejemplo en vivo :
$(".date")
.datepicker({
onSelect: function(dateText) {
console.log("Selected date: " + dateText + "; input's current value: " + this.value);
}
})
.on("change", function() {
console.log("Got change event from field");
});
<link href="http://code.jquery.com/ui/1.9.2/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<input type='text' class='date'>
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
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 dispara onSelect
(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 el change
evento habitual , o posiblemente un selector de fecha- uno específico).
Si lo desea, por supuesto, puede hacer que el change
evento en el input
fuego:
$(".date").datepicker({
onSelect: function() {
$(this).change();
}
});
Eso se disparará change
en el subyacente input
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 de data
) y comparar.
Ejemplo en vivo :
$(".date")
.datepicker({
onSelect: function(dateText) {
console.log("Selected date: " + dateText + "; input's current value: " + this.value);
$(this).change();
}
})
.on("change", function() {
console.log("Got change event from field");
});
<link href="http://code.jquery.com/ui/1.9.2/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<input type='text' class='date'>
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>