我需要从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/
答案 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);
}
});