У меня есть средство выбора даты jQuery в формате: dd-MM-гггг.
По умолчанию средство выбора даты преобразует такие даты, как 1-2-3 и 1-2-99 до 01-02-2003 и 01-02-1999 соответственно.Однако это только тот случай, когда вы нажимаете ввод или выбираете дату из средства выбора даты.Я попытался автоматически отформатировать поле при выходе из поля, используя:
$j('.datepicker').live('blur', function(){
$j(this).datepicker('setDate', $j(this).datepicker('getDate'));
});
В этом случае я использую функцию полезности setDate и getDate самого Datepicker.Это работает, когда вы вводите дату с помощью клавиатуры и, например, клавиши TAB.Тем не менее, триггер размытия также активируется, когда вы пытаетесь выбрать дату с помощью мыши.Поэтому вы должны выбрать дату дважды с помощью мыши, потому что первое событие размытия устанавливает старое значение обратно.
Есть ли какое-то событие, которое мне не хватает, я могу использовать?
Обходной путь
Не очень элегантно, но это частичное решение:
var timeout;
$j('#geboortedatum').live('keypress', function() {
if(timeout) {
clearTimeout(timeout);
timeout = null;
}
timeout = setTimeout(formatDate, 1000);
});
function formatDate() {
var gebdat = $j('#geboortedatum').val();
var dashCount = gebdat.split('-').length - 1;
if(dashCount == 2 && gebdat.length >= 5) {
$j('#geboortedatum').datepicker('setDate', $j('#geboortedatum').datepicker('getDate'));
}
}