两个输入框:当我设置第一个输入框时,我希望第二个输入框在第一个选择的日期之后的一天。我正在使用基思伍德的jquery插件:http://keith-wood.name/datepickRef.html。JQuery datepicker-2输入/文本框
使用altField:只是在两个字段保持不变,但我想在第二个输入字段后1天。
两个输入框:当我设置第一个输入框时,我希望第二个输入框在第一个选择的日期之后的一天。我正在使用基思伍德的jquery插件:http://keith-wood.name/datepickRef.html。JQuery datepicker-2输入/文本框
使用altField:只是在两个字段保持不变,但我想在第二个输入字段后1天。
看看我的答案在这里 - JQuery datepicker- 2 inputs/textboxes and restricting range
一种方式做到这一点是使用了beforeShow
属性在第二日期选择器限制值。或者,定义一个onSelect
处理程序,它在第一个日期被选中时更新第二个输入。
Working Demo注:这是基于jQuery DatePicker,而不是Keith Woods'。
编辑:
由于在datepick plugin page说 -
这个插件形成了 jQuery UI的日期选择器的基础。由于 UI团队希望为其版本提供简化的 功能,因此可将 作为单独的插件提供。
因此基于jQuery UI Datepicker的代码将与Keith的datepicker一起使用。从演示
$(function()
{
$('#txtStartDate, #txtEndDate').datepicker(
{
showOn: "both",
dateFormat: "dd M yy",
onSelect: insertOtherDate,
firstDay: 1,
changeFirstDay: false
});
});
function insertOtherDate(value, date, inst) {
var firstDate = new Date(value);
var datepickerInput = (date.id === 'txtStartDate') ? 'txtEndDate' : 'txtStartDate';
var dateAdjust = (date.id === 'txtStartDate') ? 1 : -1;
var secondDate = new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + dateAdjust);
$('#' + datepickerInput).datepicker('setDate', secondDate);
}
代码中定义的处理程序ONSELECT与比所述一个选择用于第一字段中的一个以后的日期更新第二字段。
从datepicker创建一个onSelect事件。在回调中读取值,将日期转换为UNIX TIMESTAMP(可以使用$ .datepick.TIMESTAMP),添加24 * 60 * 60000并相应地配置第二个输入。
这会输入与第一个datepicker中使用的自定义格式相同的日期吗? – 2009-10-06 12:30:41
startDate和endDate之间的范围不能始终为1.导致startDate和endDate具有minDate和maxDate。选择endDate时,startDate不能更改为“endDate - 1”,并且startDate可以保持与以前相同。当startDate选中时,endDate应该改为“startDate + 1”,那么该怎么做 非常感谢 – Jason 2009-10-07 09:47:23
如果我正确地理解了你,endDate应该比startDate多1天,但不应该超过定义的maxDate为endDate。同样,startDate应该比endDate少1天,但不能早于为startDate定义的minDate。那是对的吗?如果没有,你需要澄清startDate和endDate之间的范围。 – 2009-10-07 09:57:21
在startDate之前选择endDate时会发生什么? – 2009-10-07 09:58:09