jQuery UI Datepicker - 为什么第二个datepicker会在onfocus上消失?

kyl*_*rns 5 javascript jquery jquery-ui jquery-ui-datepicker

我有两个input作为jQuery UI datepickers的元素.在第一个datepicker元素上进行选择后,它应该自动关注第二个datepicker元素并显示日历,以便您轻松快速地做出选择.

无论出于何种原因,第二个日期选择器/日历出现片刻然后消失.我不确定它为什么会消失; 任何人都可以向我解释为什么它正在消失并且可能的解决方案?

目前使用以下库:jQuery 1.8.3,jQuery UI 1.9.2

这是我目前使用的代码:

<ul class="fields">
    <li><label>Date picker #1</label>
        <input type="text" class="date-picker-1" />
    </li>
    <li><label> Date picker #2</label>
        <input type="text" class="date-picker-2" />
    </li>
</ul>

$('input.date-picker-1').datepicker({
    constrainInput: true,
    hideIfNoPrevNext: true,
    onSelect: function () {
        $(this).closest('.fields')
           .find('.date-picker-2').datepicker('show');
    }
});

$('input.date-picker-2').datepicker({
    onFocus: 'show'
});
Run Code Online (Sandbox Code Playgroud)

这是一个小提琴:http://jsfiddle.net/B78JJ/

如果有任何其他信息有用,请随时提出,我将很乐意提供帮助.

Nel*_*son 4

这似乎是焦点计时问题,快速解决方法是使用较小的超时:

$('input.date-picker-1').datepicker({
    constrainInput: true,
    hideIfNoPrevNext: true,
    onSelect: function () {
        var dees = $(this);
        setTimeout(function() { 
           dees.closest('.fields').find('.date-picker-2').datepicker('show');
        }, 100);
    }
});
Run Code Online (Sandbox Code Playgroud)

查看工作小提琴