jQuery datepicker禁用每周的所有日期但只有一个

时间:2017-12-11 11:46:25

标签: javascript jquery date datepicker jquery-ui-datepicker

我想选择一个约会,让我说我选择一个星期一,我希望只能在另一个日期选择器上选择星期一并禁用所有其他日期,换句话说我想选择一个7天的间隔在两个日期选择器之间。

我怎样才能做到这一点?

我试过了:

beforeShowDay: function(date) {
  console.log('beforeShowDay');
  var day = date.getDay();
  return [day != day, ''];
},

但不确定它是否应该起作用或者我应该在哪个日期选择器中放置该函数。

更新:

var curday = "";
var unavailableDays = [];
var dateselected = "";

function ViewDay(date) {
    dmy = date.getDate() + "/" + (date.getMonth()+1) + "/" + date.getFullYear();
    day = date.getDay();
    if (date > dateselected) {
        if ($.inArray(day, unavailableDays) == -1) {
            return [false, "", "Unavailable"];
        } else {
            return [true, ""];
        }
    } else {
        return [false, "", "Unavailable"];
    }
}

$('#startdatesahasrara').datepicker({
    dateFormat: 'dd/mm/yy',
    minDate: 3,
    onSelect: function(e) {

        $('#enddatesahasrara').removeData("hasqtip");
        $('#enddatesahasrara').removeAttr("data-hasqtip");
        $('#enddatesahasrara').qtip("destroy", true);
        $('#enddatesahasrara').removeAttr('title');

        $('#enddatesahasrara').val('');
        unavailableDays = [];
        dateselected = new Date(e);
        curday = new Date(e).getDay();
        unavailableDays.push(curday);
        console.log('trigger');
    }
});

$("#enddatesahasrara").datepicker({
    dateFormat: 'dd/mm/yy',
    showAnim: "slideDown",
    minDate: 0,
    beforeShowDay: ViewDay
});

1 个答案:

答案 0 :(得分:1)

愿它有所帮助!

var curday = "";
var unavailableDays = [];
var dateselected = "";
$('.datepicker1').datepicker({
  dateFormat: 'yy-mm-dd',
  onSelect: function(dateText) {
    $('.datepicker').val('');
    unavailableDays = [];
    dateselected = new Date(dateText);
    curday = new Date(dateText).getDay();
    unavailableDays.push(curday);
  }
});

$(".datepicker").datepicker({
  dateFormat: 'yy-mm-dd',
  showAnim: "slideDown",
  minDate: 0,
  beforeShowDay: ViewDay //$.datepicker.noWeekends
});


function ViewDay(date) {
  dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
  day = date.getDay();
  if (date > dateselected) {
    if ($.inArray(day, unavailableDays) == -1) {
      return [false, "", "Unavailable"];
    } else {
      return [true, ""];
    }
  } else {
    return [false, "", "Unavailable"];
  }
}
<link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.js"></script>

<input type="text" class="datepicker1" />
<input type="text" class="datepicker" />