【问题标题】:jQuery datepicker loses focus after .("show")jQuery datepicker 在 .("show") 之后失去焦点
【发布时间】:2011-09-26 13:24:37
【问题描述】:

我正在使用 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
    }
});

【问题讨论】:

标签: jquery-ui focus datepicker


【解决方案1】:

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

一个有点老套的解决方法是延迟调用以显示日期选择器。例如,以下内容会起作用:

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

查看实际操作:http://jsfiddle.net/william/PVuTC/2/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多