jQuery datepicker特定日期禁用无效

时间:2018-01-06 09:47:52

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

我有代码禁用jquery datepicker上的特定日期。代码在我的本地环境中正常运行,但不能在GoDaddy windows托管

上运行
var disableddates  = result;  //result is array of dates ["1/7/2018","1/8/2018","1/9/2018"]
$("#txtFromdate").datepicker({
    minDate: 0,
    beforeShowDay : DisableSpecificDates
});
$("#txtTodate").datepicker({
    minDate: 0,
    beforeShowDay : DisableSpecificDates 
});

function DisableSpecificDates(date) {
    var string = jQuery.datepicker.formatDate('mm/dd/yy', date);
    console.log(string);  //this string return with leading zero 01/07/2018...
    return [disableddates.indexOf(string) == -1];
}

此代码在本地运行正常,但在启用时,它不会禁用jQuery datepicker中的特定日期。

1 个答案:

答案 0 :(得分:0)

如果日期已经是日期格式,则无需格式化日期。例如,如果paste a.txt b.txt | awk '{ print $1 ORS $2 }' > outcome.txt 包含类似result的数组日期,则可以从中创建Date对象:

"1/7/2018"

考虑到这一点,您可以轻松制作和操作日期。 DatePicker也将Date对象传递给函数。您可以尝试以下解决方案:

var newDate = new Date(result[0]);
$(function() {
  var disableddates = ["1/7/2018", "1/8/2018", "1/9/2018"];

  $("#txtFromdate, #txtTodate").datepicker({
    minDate: 0,
    beforeShowDay: DisableSpecificDates,
    dateFormat: "m/d/yy"
  });

  $("#txtFromdate").change(function() {
    $("#txtTodate").datepicker("option", "minDate", $(this).val());
  });

  function DisableSpecificDates(date) {
    var result = [true];
    $.each(disableddates, function(k, v) {
      var exclude = new Date(v).toString();
      var today = date.toString();
      if (exclude == today) {
        console.log("Match", exclude, today);
        result = [false];
      }
    });
    return result;
  }
});
label {
  width: 60px;
}

input {
  width: 10em;
}

我的测试在这里完成:https://jsfiddle.net/95t81vzq/3/

希望有所帮助。