Имам страница, която има JQuery инструмент за избор на дати, който е предназначен да показва дати във формат mm/yy. Не съм написал първоначалния JQuery и не съм много запознат с него, така че това може да е лесен проблем, но когато потребител щракне върху бутона „Готово“, инструментът за избор на дата изчезва за секунда, след което се отваря обратно, сякаш потребителят е щракнал отново в текстовото поле.
Кодът, използван за инстанциране на инструмента за избор на дата, е:
$(function() {
$('.datepicker').datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'mm/yy',
onClose: function(dateText, inst) {
var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
$(this).datepicker('setDate', new Date(year, month, 1));
},
beforeShow: function(input, inst) {
if ((datestr = $(this).val()).length > 0) {
year = datestr.substring(datestr.length - 4, datestr.length);
//month = jQuery.inArray(datestr.substring(0, datestr.length - 5), $(this).datepicker('option', 'monthNames'));
month = datestr.substring(0, datestr.length - 5);
$(this).datepicker('option', 'defaultDate', new Date(year, month-1, 1));
$(this).datepicker('setDate', new Date(year, month-1, 1));
}
}
});
$("#datepicker").mousedown(function() {
$('#ui-datepicker-div').toggle();
});
});
След като гуглих известно време, добавих манипулатора на mousedown и това направи така, че когато щракнете някъде на страницата извън инструмента за избор на дата, той се затваря според очакванията, но ако щракнете върху бутона за готово, той всъщност не затваря инструмента за избор на дата.