【问题标题】:Dynamically change jQuery datepicker date colours and disable them动态更改 jQuery datepicker 日期颜色并禁用它们
【发布时间】:2023-03-20 03:52:01
【问题描述】:

我有一个 php 函数,它返回我想在日期选择器上禁用的日期列表,并将单元格的颜色更改为红色。有什么办法可以实现吗?

【问题讨论】:

标签: javascript php jquery jquery-ui datepicker


【解决方案1】:

查看Datepicker API,您可以使用 beforeShowDay 选项为特定日期设置不同的课程。

定义禁用日期:

var disabledDates = ["9-5-2011","14-5-2011","15-5-2011"];

实现一个检查日期的函数:

function unavailable(date) {
  var dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
  if ($.inArray(dmy, disabledDates) < 0) {
    return [true,"",""];
  } else {
    //the second parameter you can set your css class
    return [false,"red","Day unavailable"];
  }
}

在日期选择器上分配选项:

$('#datepicker').datepicker({ 
    altField : '#hiddenFieldID',
    format: 'mm-dd-yyyy',
    changeMonth:true,
    minDate: 14,
    beforeShowDay: unavailable //here it is
});

SOURCE

【讨论】:

  • 您好,我已经尝试过您的解决方案,并已将其调整为使用 json_encode 获取数组。但是,当我加载我的页面时,他的日期选择器消失了。我已经在问题中添加了上面的代码。
  • 在demo 中工作正常。检查控制台是否有错误(chrome/firefox > 控制台选项卡上的 F12)。
  • 我刚刚意识到,当我添加 var disabledDates = ;要获取我的 php 函数输出的所有日期,日期选择器会消失。这是获取日期的正确方法吗?
  • 尝试看看输出是什么......也许没有任何东西被回显,结果最终是 var disabled dates = ;这是无效的。话虽如此,这就是您不应该将 JavaScript 与 PHP 代码混合使用的原因之一。最好在 datepicker 输入上使用 data 属性并将其放入函数中。
  • ["20-02-2015"] 被回显。这意味着日期应该在 javascript 中,但看起来不是
猜你喜欢
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 2011-05-25
  • 1970-01-01
相关资源
最近更新 更多