Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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
Javascript 在jquery日期选择器中禁用自定义日期_Javascript_Jquery_Jquery Ui - Fatal编程技术网

Javascript 在jquery日期选择器中禁用自定义日期

Javascript 在jquery日期选择器中禁用自定义日期,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我正在尝试禁用Jquery UI日期选择器日历中的某些日期 我的问题是,只有disableDays函数检查的最后一个日期被禁用,而不是所有日期都被禁用。为什么它只禁用最后检查的日期。我是否应该从此函数返回不同的响应 完整脚本: var disabled_days = new Array(); // Array of Date() objects $('.date-picker-day').live('click', function () { $(this).datepicker({

我正在尝试禁用Jquery UI日期选择器日历中的某些日期

我的问题是,只有disableDays函数检查的最后一个日期被禁用,而不是所有日期都被禁用。为什么它只禁用最后检查的日期。我是否应该从此函数返回不同的响应

完整脚本:

var disabled_days = new Array(); // Array of Date() objects


$('.date-picker-day').live('click', function () {
    $(this).datepicker({
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'dd',
        beforeShow: function () {
            [..]
        },
        beforeShowDay: disableDays,
        onClose: function (dateText, inst) {

        }

    }).focus();
});

function disableDays(date) {
    var ret = false;
    $.each(disabled_days, function (k, v) {
        if (v.getDate() == date.getDate()) {
            console.log(v + 'vs.' + date + ' invalid');
            ret = [false];
        } else {
            ret = [true];
        }
    });

    return ret;
}  

一旦发现负匹配,您需要停止
disabled_days
数组的进一步迭代,否则在下一次值迭代中,日期将不匹配,
ret
将再次获得
true

function disableDays(date) {
    var ret = false;
    $.each(disabled_days, function (k, v) {
        if (v.getDate() == date.getDate()) {
            console.log(v + 'vs.' + date + ' invalid');
            ret = [false];
            return false;
        } else {
            ret = [true];
        }
    });
    return ret;
}

演示:

非常感谢!我很惊讶我没有在脑子里整理这些。