【发布时间】:2009-10-31 00:27:18
【问题描述】:
我正在尝试将 " 和 "Next >" 链接附加到 jQueryUI 日期选择器控件。我的问题是它会正确添加 1 天,然后停止。它不会继续增加天数。 (与上一个按钮相同)。因此,如果我输入 2009 年 10 月 30 日,它只会“下一个”到 2009 年 10 月 31 日,并且不会滚动到 11 月 1 日。有什么想法吗?这是我的简化代码:
相关 HTML:
<form id="dateForm">
<a href="" id="previous">« Previous</a>
<input name="datepicker" type="text" value="10/30/2009" id="datepicker" />
<a href="" id="next">Next »</a>
相关的 Javascript / jQueryUI:
// Datepicker Init
$("#datepicker").datepicker({showOn: 'button', buttonText: 'Click to choose date'}).change(function () {
refreshSchedule();
});
// Next Day Link
$('a#next').click(function () {
$("#datepicker").datepicker('setDate', '+1');
refreshSchedule();
return false;
});
// Previous Day Link
$('a#previous').click(function () {
$("#datepicker").datepicker('setDate', '-1');
refreshSchedule();
return false;
});
jQueryUI 日期选择器可以正常工作。
根据评论更新 - refreshCalendar() 函数可以命名为 doSomething();这与关于如何增加/减少 #datepicker 字段的原始问题无关。也就是说,这是代码。我可以用一个 $("#datepicker").change() 监听器和一个回调函数来更新表格/标题。
// Get the latest calendar data from server. Update the calendar title & table
// returns a json array: data[0] = title, data[1] = html table contents
refreshCalendar = function () {
var selectedDate = $("#datepicker").val();
$.getJSON(serverUrl, {targetDate: selectedDate}, function (data) {
$("#calendarTitle").html(data[0]);
$("#calendarTable").html(data[1]);
});
};
【问题讨论】:
-
你能用 refreshSchedule() 做什么更新问题吗? HTML中似乎还应该有另一个输入按钮?你也可以更新一下吗?
-
为了简化问题,我将目标表 HTML 排除在上述示例之外。它只是一个标准表格,头部带有#calendarTitle id,主体带有#calendarTable id。此时间表的 HTML 表的其余部分由服务器端脚本创建。
标签: jquery jquery-ui datepicker