jquery datepicker:启用特定日期模式

时间:2016-04-20 21:51:52

标签: javascript jquery datepicker

我的项目中有一个特定的需求,我应该在jquery日期选择器中仅启用每月的第1和第15个。我见过几个基于日期数组的解决方案,但这对我不起作用。有没有办法可以应用模式?

@mtndesign - 关于为什么我不能使用数组的回答/问题: datepicker应始终(所有过去,当前和未来的月份和年份)仅显示1或15.我可以在阵列中保留多少个日期?如何根据用户所选月份的用户行为创建阵列?我觉得如果我开始创建一个数组

会很复杂

2 个答案:

答案 0 :(得分:2)

我想你想要完成这样的事情:

function isAvailable(date) {
  var dt = date.getDate();
  if (dt == 1 || dt == 15) {
    return [true,"",""];
  } else {
    return [false,"",""];
  }
}

$('#some_div').datepicker({ beforeShowDay: isAvailable });

更通用的解决方案是:

var dates_avail = [1, 15, 23, 27];
function isAvailable(date) {
  var dt = date.getDate();
  if (dates_avail.indexOf(dt) != -1) {
    return [true,"",""];
  } else {
    return [false,"",""];
  }
}

$('#some_div').datepicker({ beforeShowDay: isAvailable });

或查看特定年份的具体日期:

var dates_avail = ["1/1/2016", "21/4/2016", "19/3/2016"];
function isAvailable(date) {
  var dt = date.getDate();
  dt += "/" + (date.getMonth()+1);
  dt += "/" + date.getFullYear();
  if (dates_avail.indexOf(dt) != -1) {
    return [true,"",""];
  } else {
    return [false,"",""];
  }
}

$('#some_div').datepicker({ beforeShowDay: isAvailable });

答案 1 :(得分:0)

我要使用此功能,请问这种格式正确吗?

<script type="text/javascript">

                    function isAvailable(date) {
                        var dt = date.getDate();
                        if (dt == 1 || dt == 16) {
                            return [true, "", ""];
                        } else {
                            return [false, "", ""];
                        }
                    }
                    $('#date2').datepicker({ beforeShowDay: isAvailable });

            </script>