【发布时间】:2016-10-06 15:10:30
【问题描述】:
我正在寻找一种在用户选择日期后从一个日历移动到下一个日历的方法,例如:
- 用户选择
dateFrom - 自动关闭
dateFrom日历并显示dateTo版本
我觉得我接近解决方案,但 dateTo 日历弹出然后立即消失,我正在连接日历的 onSelect 功能,当 inst 是 dateFrom日历,然后我在dateTo 文本框上调用.focus() 例如:
$('.datepicker > input').datepicker({
// snip.....
onSelect: function (dateText, inst) {
var type = $('#' + inst.id).data('calendar');
if (type === 'date-from') {
$('.js-hook--date-to').focus();
}
}
});
标记:
<div class="large-2 columns">
<div class="datepicker">
<asp:TextBox ID="txtDateFrom" runat="server" placeholder="CHECK IN" data-calendar="date-from" />
</div>
</div>
<div class="large-2 columns">
<div class="datepicker">
<asp:TextBox ID="txtDateTo" runat="server" CssClass="js-hook--date-to" placeholder="CHECK OUT" data-calendar="date-to" />
</div>
</div>
这会导致下一个日历弹出,然后消失,有没有简单的方法来实现这一点?
编辑*
我也尝试过使用.datepicker("show");,但没有成功。
第二次编辑*
【问题讨论】:
-
@blgt 这有什么关系?一旦在第一个日期中选择了日期,我想显示一个不同的单独日历对象。不幸的是,它与这个问题无关。
-
如果您使用开箱即用的小部件,它只会在页面上绘制一个 div 并将其重用于所有输入字段。您已经使用
.focus()进行了输入交换,看起来问题在于保持打开状态。如果不是这样,你能做一个 MCVE 吗? -
帮助解决这个问题的最佳方式是现场演示。一个建议是先关闭当前...然后使用 setTimeout() 触发下一个。让插件有机会清理第一个然后构建第二个
-
@blgt 没关系,我不打算同时显示两个日历,目的是打开第一个,选择一个日期,关闭它,然后显示第二个。我不明白这与提议的欺骗有什么关系?那家伙在问如何在选择日期后保持日历打开..
标签: javascript jquery jquery-ui calendar