关闭第一个时如何打开第二个界面日期选择器
我正在尝试使用JQuery UI的日期选择器向表单添加一些功能。
当用户选择到达日期(onSelect)时,应该发生几件事:
将出发日期更新为到达日期后3天(现在有效:)- 将出发日期一分为三,并将每个部分添加到一个输入域中(请参阅小提琴中的到达日期示例)
- 当到达日期取件器关闭(onClose)时,出发日期取件器应自动打开,默认为第一点中选择的日期(例如:http://www.kayak.es)
我设法让第一点起作用了,但我对其他功能有点迷茫。如果有人能告诉我怎么做,或者让我走上正轨,那就太好了!我还是个初学者,但学得很快。
这是我现在拥有的小提琴:http://jsfiddle.net/mattvic/B6Kax/13/
解决方案
将出发日期分成3个部分,然后添加 将每个部分添加到一个输入字段
看起来您已经在目标Datepicker的onSelect
处理程序中为此编写了代码。遗憾的是,它看起来像setDate
does not trigger that event,不能手动触发。我建议将该代码分解为一个单独的函数,您可以从这两个位置调用该函数:
function splitDepartureDate(dateText) {
var depSplit = dateText.split("-", 3);
$('#alt-vertrek-d').val(depSplit[0]);
$('#alt-vertrek-m').val(depSplit[1]);
$('#alt-vertrek-y').val(depSplit[2]);
}
然后将出发日期选择器onSelect
处理程序更改为指向该函数:
$('#vertrek').datepicker({
// Prevent selecting departure date before arrival:
beforeShow: customRange,
onSelect: splitDepartureDate
});
最后,从到达onSelect
事件处理程序调用该函数:
/* snip: */
// Populate departure date field
var nextDayDate = $('#aankomst').datepicker('getDate', '+3d');
nextDayDate.setDate(nextDayDate.getDate() + 3);
$('#vertrek').datepicker('setDate', nextDayDate);
// Manually call splitDepartureDate
splitDepartureDate($("#vertrek").val());
到达日期选择器何时关闭 (OnClose),出发日期拾取器 应自动打开,默认情况下 至第1点中选择的日期
这只是使用onClose
事件处理程序的问题:
onClose: function() {
$("#vertrek").datepicker("show");
}
这是您的更新示例:http://jsfiddle.net/zXMke/
相关文章