【发布时间】:2010-09-08 13:51:45
【问题描述】:
我有一个 jQuery 日期选择器,格式为:dd-MM-yyyy。
默认情况下,日期选择器会将 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'));
});
在这种情况下,我使用的是 Datepicker 本身的实用函数 setDate 和 getDate。例如,当您使用键盘并使用 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'));
}
}
【问题讨论】:
标签: jquery jquery-ui datepicker