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

falq053o  于 2023-08-04  发布在  jQuery
关注(0)|答案(3)|浏览(143)

我有两个input元素作为jQuery UI日期选择器。在第一个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'
});

字符串
这里有一个小提琴:http://jsfiddle.net/B78JJ/
如果任何其他信息将是有帮助的,请随时要求,我会很乐意帮助。

h5qlskok

h5qlskok1#

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

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

字符串
参见working fiddle

yvfmudvl

yvfmudvl2#

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

$(function() {
	$from = $("#from");
  $to = $("#to");

	$from.datepicker({
  	onClose : function(){
      $to.datepicker('show');
    }
  });
  
  $to.datepicker({
    changeMonth: true,
    changeYear: true,
    onChangeMonthYear: function(year, month ){
    	$to.datepicker('setDate', new Date(year, month-1, 1));
    }
  });
})

个字符

7kjnsjlb

7kjnsjlb3#

正因为如此:

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

字符串
您可以用途:

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

相关问题