jQuery UI日期选择器范围选择三个日期
我将分别按请求、提交和批准的升序设置三个日期,并使用。 javascript代码如下所示:jQuery UI日期选择器范围选择三个日期,jquery,jquery-ui,datepicker,jquery-ui-datepicker,Jquery,Jquery Ui,Datepicker,Jquery Ui Datepicker,我将分别按请求、提交和批准的升序设置三个日期,并使用。 javascript代码如下所示: $('#startDate,#completionDate,#due_date').datepick({ onSelect: customRange }); function customRange(dates) { if (this.id == 'startDate') { $('#due_date').datepick('option', 'minDate', d
$('#startDate,#completionDate,#due_date').datepick({
onSelect: customRange
});
function customRange(dates) {
if (this.id == 'startDate') {
$('#due_date').datepick('option', 'minDate', dates[0] || null);
} else if (this.id == 'due_date') {
$('#startDate').datepick('option', 'maxDate', dates[0] || null);
$('#completionDate').datepick('option', 'minDate', dates[0] || null);
} else {
$('#due_date').datepick('option', 'maxDate', dates[0] || null);
}
}
_optionPlugin: function(target, options, value) {
target = $(target);
var inst = target.data(this.propertyName);
if (!options || (typeof options == 'string' && typeof value == 'undefined')) { // Get option
...
但是,当我选择单击时,不会调用该函数,因此,即使我清除了completionDate,到期日期仍然受到限制
JSFIDLE是
更新:
即使使用简单的范围选择,问题也是一样的。单击clear时调用customRange函数,并传递未定义的值。但minDate或maxDate未更改。这在网站上是一样的
不要简单地回答问题,但我已经分析了您的代码并测试了许多情况,我的建议是使用
onClose
而不是onSelect
主要问题是在关闭NULL和[]时的清除日期,这两个都是我应用的,但在这种情况下,有时它会返回NULL的未定义值。我认为函数
\u optionPlugin
中的插件存在问题,NULL
无法设置
代码:
您可以要求开发人员解决此问题,或设置一个最短日期,如:
$('#startDate,#completionDate').datepick({
onSelect: customRange
});
function customRange(dates) {
var demo=dates[0] || 'null'
if (this.id == 'startDate') {
$('#completionDate ').datepick('option','minDate', dates[0] || new Date(0));
}
else {
$('#startDate').datepick('option','maxDate', dates[0] || new Date(2099,12,31));
}
}
演示:
如果要隐藏“清除并关闭”,请使用:
.datepick-cmd-clear {
display: none
}
.datepick-cmd-close {
display: none
}
演示:选项插件中有一个错误,请按如下方式更改函数的开头:
$('#startDate,#completionDate,#due_date').datepick({
onSelect: customRange
});
function customRange(dates) {
if (this.id == 'startDate') {
$('#due_date').datepick('option', 'minDate', dates[0] || null);
} else if (this.id == 'due_date') {
$('#startDate').datepick('option', 'maxDate', dates[0] || null);
$('#completionDate').datepick('option', 'minDate', dates[0] || null);
} else {
$('#due_date').datepick('option', 'maxDate', dates[0] || null);
}
}
_optionPlugin: function(target, options, value) {
target = $(target);
var inst = target.data(this.propertyName);
if (!options || (typeof options == 'string' && typeof value == 'undefined')) { // Get option
...
这没有帮助,问题仍然存在。“清除”按钮单击的事件是什么,这将非常有用。onSelect事件即使在“清除”时也会触发,但minDate或maxDate会保留先前的值。如果有人能建议一种隐藏清除和关闭的方法,那么null和[]也是一样的,这也会有帮助!!