Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery UI日期选择器范围选择三个日期_Jquery_Jquery Ui_Datepicker_Jquery Ui Datepicker - Fatal编程技术网

jQuery UI日期选择器范围选择三个日期

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

我将分别按请求、提交和批准的升序设置三个日期,并使用。 javascript代码如下所示:

  $('#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和[]也是一样的,这也会有帮助!!