在jquery中禁用特定日期

时间:2009-10-18 12:41:48

标签: jquery date datepicker picker

我正在使用此处的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());
   }
  }
 );

});

但这似乎不起作用。

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

2 个答案:

答案 0 :(得分:0)

Simple Calendar Widget内置了这种功能。你可以转换吗?

答案 1 :(得分:0)

你似乎在两个不同的选择日期之间感到困惑。您在“beforeShowDay”中显示的链接是jQuery UI datepicker小部件的文档。但似乎您正在使用my date picker widget

使用我的小部件,您需要使用renderCallback来禁用某些日期。这两个例子说明了如何:

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

http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/renderCalendarBankHolidays.html(另一个示例显示renderCalendar renderCallback显示英国银行假日 - datePicker在幕后使用renderCalendar,以便您可以通过{ {1}}以同样的方式进行。