【问题标题】:Dynamic disable of day Date Picker JavaScript日期选择器 JavaScript 的动态禁用
【发布时间】:2020-09-01 01:12:05
【问题描述】:

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

替换代码:

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>

【问题讨论】:

    标签: javascript datepicker frontend jquery-ui-datepicker


    【解决方案1】:

    我想你想要这样的东西。

    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();
    

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

    【讨论】:

    • 这可能会起作用,但我使用的环境是旧版本的 javascript
    • 你能把它翻译成一个不使用更高版本javascript的javascript吗?
    • @Nico 你可以使用const disabledDays = ["1", "2", "3"].map(Number)进行翻译
    猜你喜欢
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多