Jquery UI datepicker关闭next()。focus()

时间:2012-11-04 12:01:15

标签: jquery-ui datepicker

我需要从datepicker小部件中随后选择两个日期,然后我想在选择第一个日期时关注第二个日期。 我这样设置:

<input type="text" class="date" id="fromDate" name="fromDate"/>
<input type="text" class="date" id="toDate" name="toDate"/>

$("input.date").datepicker({
    onSelect: function(){
        $(this).next(".date").focus();
    }
});

但是当我选择第一个日期时,第二个日期会打开然后关闭窗口......为什么?

我看到onClose事件有效,但如果没有选择第一个日期,我不想打开另一个日期......

请从小提琴中试试:http://jsfiddle.net/Ld98p/1/

2 个答案:

答案 0 :(得分:4)

这很有趣。即使调用datepicker小部件的show()方法也会导致相同的行为。

看起来onSelect回调是在一个相当复杂的情况下调用的,事件明智的,并且触发focus或强制显示回调本身的弹出窗口是不可靠的。

但是,从稍微延迟的功能触发focus似乎有效:

$("input.date").datepicker({
    onSelect: function() {
        window.setTimeout($.proxy(function() {
            $(this).next(".date").focus();
        }, this), 10);
    }
});

您可以在your updated fiddle中进行测试。

答案 1 :(得分:0)

接受的答案对我不起作用,但以下变化确实如此:

$("input.date").datepicker({
    onSelect: function() {
        window.setTimeout($.proxy(function() {
            $('.date').datepicker('show');
        }, this), 10);
    }
});