jQuery datepicker失去了焦点。(“show”)

时间:2011-09-26 13:24:38

标签: jquery-ui focus datepicker

我正在使用jQuery UI的范围日期选择器。选择“从日期”时,我想自动打开“迄今为止”的日期选择器。所以,我调用.datepicker(“show”)。 “迄今为止”的选择器正在显示一秒钟并立即逐渐消失。令人惊讶的是,如果我转到另一个应用程序,然后返回并专注于浏览器窗口,则会显示“迄今为止”的选择器。 我还尝试添加$('#toDate')。focus();但它没有帮助。

$( ".fromDatePicker" ).datepicker({
    defaultDate: "+1w",
    dateFormat: 'dd/mm/yy',
    altFormat: 'yymmdd',
    altField: "#fromDateFormatted",
    numberOfMonths: 2,
    showOn: "both",
    buttonImage: "images/calender_icon_a1.jpg", 
    buttonText: "open calendar",
    buttonImageOnly: true,
    onSelect: function( selectedDate ) {
        $('#toDate').datepicker( "option", "minDate", selectedDate );
        $('#toDate').datepicker("show");
        //$('#toDate').focus();  //commented cause it's not working
    }
});

1 个答案:

答案 0 :(得分:0)

外观闪烁的原因是因为在show完成之前会调用minDate。这会在显示选择器之前触发beforeShowDay事件时混淆datepicker。

一个有点hacky的解决方法是延迟调用以显示datepicker。例如,类似下面的内容可行:

onSelect: function( selectedDate ) {
    $('#toDate').datepicker( "option", "minDate", selectedDate );
    setTimeout(function() { $('#toDate').datepicker("show") }, 50);
}

请参阅此操作:http://jsfiddle.net/william/PVuTC/2/