0

以下是日期选择器代码。此处周日和周六被禁用。我尝试了很多来启用周日。要进行哪些更改以仅将周日启用为工作日。

<script>
      (function ($) {
    var disabledDays = ["5-28-2012","7-4-2012","7-5-2012","7-6-2012","9-3-2012","9-17-2012","9-26-2012","11-22-2012","11-23-2012","12-25-2012","1-1-2013"];
    function nationalDays(date) {
      var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
      for (i = 0; i < disabledDays.length; i++) {
        if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) {
          return [false];
        }
      }
      return [true];
    }
    function noWeekendsOrHolidays(date) {
      var noWeekend = jQuery.datepicker.noWeekends(date);
      return noWeekend[0] ? nationalDays(date) : noWeekend;
    }
    var fourWorkingDays = new Date();
    var adjustments = [0, 0, 2, 2, 2, 2, 1];
    fourWorkingDays.setDate(fourWorkingDays.getDate() + 1 + adjustments[fourWorkingDays.getDay()]);
    jQuery(document).ready(function() {
      jQuery('#cf3_field_10').datepicker({
        minDate: 0,
       //maxDate: new Date(2011, 11, 31),
        dateFormat: 'DD, MM, d, yy',
        constrainInput: true,
        beforeShowDay: noWeekendsOrHolidays
      });
      jQuery('#cf3_field_11').timepicker({
            showPeriod: true,
            onHourShow: OnHourShowCallback,
            onMinuteShow: OnMinuteShowCallback
    });
    function OnHourShowCallback(hour) {
        if ((hour > 18) || (hour < 9)) {
            return false; // not valid
        }
        return true; // valid
    }
    function OnMinuteShowCallback(hour, minute) {
        if ((hour == 18) && (minute >= 0)) { return false; } // not valid
        if ((hour == 9) && (minute < 30)) { return false; }   // not valid
        return true;  // valid
    }
    });
    })(jQuery);
      </script>

我只想启用星期天作为已经禁用的工作日检查www.jbediamonds.com/form.php,日期部分

4

3 回答 3

1

您可以尝试向您的js添加一些日期选择属性,如下所示:

selectable_days: [0, 1, 2, 3, 4, 5, 6],
  non_selectable: [],
  rec_non_selectable: [],
  start_of_week: 1,
  show_week: 0,
  select_week: 0,
  week_label: "",
  date_min: "",
  date_max: "",

或最简单的方法 - 使用另一个 jQuery DatePicker。

很容易实现,也很容易改变属性。

于 2013-02-01T09:54:24.730 回答
1

这是日期选择器的文本框

<input id="txtDate" type="text" />

这是函数调用者:

   $(function () {
    $('#txtDate').datepicker({
        beforeShowDay: disabledays
    });
});

这是启用禁用功能:

   var unavailableDates = ["2013-3-31", "2013-3-24"];

function disabledays(date) {
    var ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
    if ($.inArray(ymd, unavailableDates) >= 0) {
        return [false, "", "Unavailable"];
    } else {
        //Show only sundays and thuersdays
        var day = date.getDay();
        return [(day == 0 || day == 1 || day == 4)]; // add here date you want to enable
    }
}
于 2013-02-01T09:58:15.723 回答
0

您正在使用jQuery.datepicker.noWeekends(date)它将禁用周六和周日。

在这里查看如何仅禁用某些日期:jquery ui date picker limit to Sundays

于 2013-02-01T09:57:37.803 回答