Você pode usar o onSelectevento do datepicker .
$(".date").datepicker({
onSelect: function(dateText) {
console.log("Selected date: " + dateText + "; input's current value: " + this.value);
}
});
Exemplo ao 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>
Infelizmente, é onSelectacionado sempre que uma data é selecionada, mesmo que não tenha sido alterada. Essa é uma falha de design no datepicker: sempre é acionada onSelect(mesmo que nada tenha sido alterado) e não dispara nenhum evento na entrada subjacente na alteração. (Se você procurar no código desse exemplo, estamos ouvindo as alterações, mas elas não estão sendo levantadas.) Provavelmente, deve disparar um evento na entrada quando as coisas mudarem (possivelmente o changeevento usual ou possivelmente um datepicker- específico).
Se você quiser, é claro, pode fazer o changeevento pegar inputfogo:
$(".date").datepicker({
onSelect: function() {
$(this).change();
}
});
Isso será acionado changeno subjacente inputpara qualquer manipulador conectado via jQuery. Mas, novamente, sempre dispara. Se você deseja acionar apenas uma alteração real, precisará salvar o valor anterior (possivelmente via data) e comparar.
Exemplo ao 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>