Tôi đã triển khai chức năng bạn đã yêu cầu bằng cách sử dụng một trình đếm ngày tháng jQuery.
Đầu tiên, thêm tất cả những ngày đã chọn trong văn phòng lại bị vô hiệu vào một mảng
// format yyyy-mm-dd
var disabledDates = [
"2012-10-01",
"2012-10-02",
"2012-10-30",
"2012-09-12"
];
Thứ hai, xác định datepicker với hai chức năng
$("#datepicker").datepicker({
// only enable date if dateEnabled returns [true]
beforeShowDay: dateEnabled,
// once a date has been selected call dateSelected
onSelect: dateSelected
});
Dưới đây là định nghĩa của yêu cầu chức năng
function dateEnabled(d) {
// if date found in array disable date
if(disabledDates.indexOf(getDate(d)) > -1) {
return [false];
} else {
return [true] ;
}
}
Chuyển đổi ngày thành chuỗi để so sánh với ngày tháng ở mảng
function getDate(d) {
var day,
month,
year;
day = d.getDate();
month = d.getMonth() + 1; // add 1 as getMonth returns 0 - 11
year = d.getFullYear();
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
return year + "-" + month + "-" + day;
}
Khi một ngày đã được quá trình chọn nó
function dateSelected(d) {
// do stuff with string representation of date
}
Đây là một fiddle http://jsfiddle.net/KYzaR/7/
Chỉ cần nghĩ rằng nó sẽ là đáng nói đến là Array.indexOf là một bổ sung gần đây để ECMA -262 tiêu chuẩn và vì vậy trong trường hợp của IE7 và IE8 nó không được hỗ trợ. Trang MDN sau cung cấp mã triển khai Array.indexOf cho các trình duyệt này https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf
"tìm những ngày này" hoặc "có những ngày này" thực sự có ý nghĩa gì? Mục tiêu không rõ ràng – charlietfl