首页 > 解决方案 > 日期选择器 JavaScript 的动态禁用

问题描述

我想通过使用数组动态禁用天数,

替换代码:

var monday = 1;
var tuesday = 2;

来自数据库的动态值

 var disabledDay = ["1","2","3"];

任何帮助将不胜感激谢谢

旧代码

jsFiddle:http: //jsfiddle.net/314wd8t7/

 $("#picker").datepicker(
    { beforeShowDay: function(day) {
  
    var string = jQuery.datepicker.formatDate('yy-mm-dd', day);
    var day = day.getDay();
    var monday = 1;
    var tuesday = 2;

    if (day != monday && day != tuesday){
      return [ true ]
    } else {
      return [ false ]
    }  
     }
});


$('#picker').datepicker();

<div id="picker"></div>

标签: javascriptdatepickerfrontendjquery-ui-datepicker

解决方案


我想你想要这样的东西。

http://jsfiddle.net/dgo48jry/

const disabledDays = ["1", "2", "3"]
    .map((n) => parseInt(n))
    .filter((n) => !isNaN(n));

$("#picker").datepicker({
    beforeShowDay: function(day) {
        return [!disabledDays.includes(day.getDay())];
    }
});


$('#picker').datepicker();

这假定您的服务器将值作为字符串返回。如果您不需要字符串,您可以简单地删除地图过滤线。


推荐阅读