Datepicker onSelectolayı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, onSelectbir 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 changebaşlatmalıdır (muhtemelen olağan olay veya muhtemelen bir tarih seçici- belirli bir).
İsterseniz, elbette, changeetkinliği inputateşte yapabilirsiniz:
$(".date").datepicker({
onSelect: function() {
$(this).change();
}
});
Bu jQuery ile bağlanmış herhangi bir işleyici changeiç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>