如何在日期选择器中为所有月份启用特定日期

时间:2018-07-13 08:04:04

标签: jquery arrays datepicker jquerydatetimepicker

如何在jquery datepicker中仅显示所有月份和年份的特定日期。 我只希望启用所有月份的2天和16天。年和月无限制。 如果可能,请给我解决方案。 http://jsfiddle.net/yXMKC/4245/

Js:

var available_formatted_days_list = ["07-02-2018", "07-16-2018"];
function check_available_date( date ) {
    var formatted_date = '', ret = [true, "", ""];
    if (date instanceof Date) {
        formatted_date = $.datepicker.formatDate( 'mm-dd-yy', date );
    } else {
        formatted_date = '' + date;
    }
    if ( -1 === available_formatted_days_list.indexOf(formatted_date) ) {
        ret[0] = false;
        ret[1] = "date-disabled"; 
        ret[2] = "Date not available"; // put your custom message here
    }
    return ret;
}

$('#date').datepicker({
    dateFormat: 'dd-mm-yy',
    beforeShowDay: check_available_date
});

HTML:

<input type="text" name="date" id="date" readonly="readonly" size="12" />

2 个答案:

答案 0 :(得分:1)

您需要进行一些更改才能使其正常工作。

  1. 首先使您可以用format_days_list数组作为数字列表

    public class Component_A{ public string name {get;private set;} public Component_A(string name){ this.name = name; } }

  2. 通过Date API获取当前日期

    available_formatted_days_list = [2, 16]

  3. 改为使用此值

    let currentDay = date.getDate();

http://jsfiddle.net/aurc7xwp/

希望这会有所帮助!

答案 1 :(得分:1)

这是我的解决方法

$('#date').datepicker({
    dateFormat: 'dd-mm-yy',
    beforeShowDay: function(d) {
    console.log("in"+d.getDate());
       if (d.getDate() == 2 || d.getDate() == 16) {
         return [true, "" ];
       } else {
          return [false, "" ];
       }
    }
});