Javascript jQuery UI日期选择器-为什么第二个日期选择器在焦点上消失?

Javascript jQuery UI日期选择器-为什么第二个日期选择器在焦点上消失?,javascript,jquery,jquery-ui,jquery-ui-datepicker,Javascript,Jquery,Jquery Ui,Jquery Ui Datepicker,我有两个input元素用作jqueryui日期选择器。在第一个datepicker元素上进行选择后,它应自动聚焦于第二个datepicker元素并显示日历,从而允许您轻松快速地进行选择 无论出于什么原因,第二个日期选择器/日历出现了一会儿,然后消失了。我不知道为什么它正在消失;有人能给我解释一下为什么它会消失,以及一个可能的解决方案吗 目前正在使用以下库:jQuery 1.8.3、jQuery UI 1.9.2 以下是我当前使用的代码: <ul class="fields">

我有两个
input
元素用作jqueryui日期选择器。在第一个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'
});
  • 日期选择器#1
  • 日期选择器#2
$('input.date-picker-1').datepicker({ 输入:对, hideIfNoPrevNext:没错, onSelect:function(){ $(this).最近(“.fields”) .find('.date-picker-2').datepicker('show'); } }); $('input.date-picker-2').datepicker({ onFocus:“秀” });
这是一把小提琴:

如果有任何其他信息有帮助,请随时询问,我很乐意提供帮助。

正因为如此

 $(this).closest('.fields')
           .find('.date-picker-2').datepicker('show');
你可以用

window.setTimeout(function(){
           $('.date-picker-2').datepicker('show');
        }, 1);

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

$('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);
    }
});

请参见

2019年8月的今天,我们发行了同样的版本。您可以使用onClose方法修复此问题。启用选项changeMonth或changeYear时会出现另一个问题,但已通过onChangeMonthYear解决

$(函数(){
$from=$(“#from”);
$to=$(“#to”);
$from.datepicker({
onClose:function(){
$to.datepicker('show');
}
});
$to.datepicker({
变化月:对,
变化年:是的,
onChangeMonthYear:函数(年、月){
$to.datepicker('setDate',新日期(年,月1,1));
}
});
})


我们需要在一段时间后打开它,这对我来说在IE、Chrome、Firefox和Safari中都有效。谢谢你,尼尔森。您知道这是否是events
onfocus
的常见问题吗?这可能是jquery ui datepicker代码中的某个错误/角落,需要花费一些时间调试datepicker才能找到确切的错误,因此,如果你不想把时间花在这上面,那么超时解决方法是一种简单的方法,我将继续使用它。我会花一些时间来寻找bug,但现在必须在截止日期前完成!谢谢你的解决方案。好吧,你可以在jqueryui问题跟踪器中报告它,这样也许其他人可以处理它,如果你这样做了,请回到这里粘贴链接,因为当我有更多时间时,我也可以尝试一下。非常感谢。这真的帮了我很大的忙