1

我正在使用此处找到的 jquery 日期选择器:http: //www.kelvinluck.com/assets/jquery/datePicker/v2/demo/datePickerStartEnd.html,它允许用户选择开始和结束日期。

但是我希望能够禁用特定日期。

我尝试实现此处找到的代码:stackoverflow.com/questions/501943/can-the-jquery-ui-datepicker-be-made-to-disable-saturdays-and-sundays-and-holida,讨论禁用国定假日。

这是我的完整代码:

$(function()
{


 $('.date-pick').datePicker({ beforeShowDay: nationalDays})
// $(".selector").datepicker({ beforeShowDay: nationalDays})   

 var natDays = [
   [1, 26, 'au'], [2, 6, 'nz'], [3, 17, 'ie'],
   [4, 27, 'za'], [5, 25, 'ar'], [6, 6, 'se'],
   [7, 4, 'us'], [8, 17, 'id'], [9, 7, 'br'],
   [10, 1, 'cn'], [11, 22, 'lb'], [12, 12, 'ke']
 ];

 function nationalDays(date) {
  for (i = 0; i < natDays.length; i++) {
    if (date.getMonth() == natDays[i][0] - 1
     && date.getDate() == natDays[i][1]) {
   return [false, natDays[i][2] + '_day'];
    }
  }
   return [true, ''];
 }

 $('#start-date').bind(
  'dpClosed',
  function(e, selectedDates)
  {
   var d = selectedDates[0];
   if (d) {
    d = new Date(d);
    $('#end-date').dpSetStartDate(d.addDays(1).asString());
   }
  }
 );
 $('#end-date').bind(
  'dpClosed',
  function(e, selectedDates)
  {
   var d = selectedDates[0];
   if (d) {
    d = new Date(d);
    $('#start-date').dpSetEndDate(d.addDays(-1).asString());
   }
  }
 );

});

但这似乎不起作用。

我非常感谢任何帮助解决这个问题!

4

2 回答 2

0

简单日历小部件内置了这种功能。能换吗?

于 2009-10-18T12:55:30.003 回答
0

您似乎对两个不同的日期选择器感到困惑。您显示的引用“beforeShowDay”的链接是jQuery UI datepicker 小部件的文档。但看来您正在使用我的日期选择器小部件

使用我的小部件,您需要使用 arenderCallback来禁用某些日期。这两个示例显示了如何:

http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/datePickerCustomCellRender.html (禁用周末的弹出日历)

http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/renderCalendarBankHolidays.html(另一个显示英国银行假期的示例 -renderCalendar在幕后使用,因此您可以以相同的方式传递。renderCallbackdatePickerrenderCalendarrenderCallback

于 2010-06-07T12:14:06.880 回答