Datepicker onSelect
olayını kullanabilirsiniz .
$(".date").datepicker({
onSelect: function(dateText) {
console.log("Selected date: " + dateText + "; input's current value: " + this.value);
}
});
Canlı örnek :
$(".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>
Maalesef, onSelect
bir tarih seçildiğinde, değişmemiş olsa bile tetiklenir. Her zaman yangınlar: Bu datepicker bir tasarım kusur onSelect
(hiçbir şey değişti bile) ve gelmez değişikliği yatan girişinde herhangi olayı. (Bu örneğin koduna bakarsanız, değişiklikleri dinliyoruz, ancak bunlar yükseltilmiyor.) İşler değiştiğinde büyük olasılıkla girdi üzerinde bir olay change
başlatmalıdır (muhtemelen olağan olay veya muhtemelen bir tarih seçici- belirli bir).
İsterseniz, elbette, change
etkinliği input
ateşte yapabilirsiniz:
$(".date").datepicker({
onSelect: function() {
$(this).change();
}
});
Bu jQuery ile bağlanmış herhangi bir işleyici change
için altta ateş edecek input
. Ama yine de, her zaman ateş ediyor. Yalnızca gerçek bir değişikliğe ateş etmek istiyorsanız, önceki değeri (muhtemelen üzerinden data
) kaydetmeniz ve karşılaştırmanız gerekir.
Canlı örnek :
$(".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>