Javascript 在jquery日期选择器中禁用自定义日期
我正在尝试禁用Jquery UI日期选择器日历中的某些日期 我的问题是,只有disableDays函数检查的最后一个日期被禁用,而不是所有日期都被禁用。为什么它只禁用最后检查的日期。我是否应该从此函数返回不同的响应 完整脚本: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({
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;
}
演示:非常感谢!我很惊讶我没有在脑子里整理这些。