0

我正在使用 Keith Wood 的出色jQuery Datepicker 插件

我在管理系统中使用日期选择器向管理员显示已为场地预订的日期。

我有一个日期列表(从数据库中提取),用于在日期选择器上显示这些预订日期。但是如果管理员想要更改这些日期中的任何一个并使日期可用,日历不允许我“取消选择”已经选择的日期。

这是代码的缩小版本,但问题仍然存在,此代码显示 6 月 26 日和 6 月 27 日的日期已预订,但我无法选择它们来“取消预订”它们。

 <script type="text/javascript">

    var bookedDaysList = [[6, 26], [6, 27]];

                function bookedDays(date, inMonth) { 
                    if (inMonth) {
                        for (i = 0; i < bookedDaysList.length; i++) {
                            if (date.getMonth() + 1 == bookedDaysList[i][0] &&
                                    date.getDate() == bookedDaysList[i][1]) {
                                return {dateClass: 'datepick-selected',selectable: true}; 
                            } 
                        } 
                    } 
                    return {}; 
                }

                /* create datepicker */

                jQuery(document).ready(function () {

                    jQuery('#show-dates').datepick({
                        dateFormat: 'dd-mm-yy',
                        altFormat: '[m,d]',
                        onDate: bookedDays,
                        buttonImage: 'css/images/datepicker.gif',
                        buttonImageOnly: true,
                        monthsToShow: 3,
                        multiSelect: 999,
                        showOn: 'both'
                    });
                });


</script>
4

2 回答 2

2

这很简单 )。

  <div class="date-picker" data-deselect="2013-12-23,2013-12-19,2013-12-31,2013-12-29,2014-01-18"></div>


  $(".date-picker").datepick({
    onDate: function(date) {
      date_str = $.datepick.formatDate('yyyy-mm-dd', date);
      dates_unselect = $(this).data("deselect").split(",");
      return {selectable: ($.inArray(date_str, dates_unselect) === -1)};
    }
  });
于 2013-12-23T20:38:36.293 回答
0

经过一番研究,我发现这个日期选择器可以完成这项工作......

http://multidatespickr.sourceforge.net/

我很惊讶 Keith Wood 插件不能满足这个要求,或者我错过了这个?

于 2012-06-01T14:11:08.333 回答