javascript - 如何在多个 jQueryUI 日期选择器中遮盖特定日期

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

我想在单个页面上的四个不同的 JQuery 日期选择器上屏蔽特定日期(例如 2015 年 5 月 20 日到 2015 年 5 月 25 日)。解决这个问题最简单的方法(轻量级)是什么?

HTML

<label>Date Picker 1</label><input type="text" id="datepicker" name="Datepicker" style="border-radius:5px; font-family: sans-serif; color:#333; font-size:14px; margin-bottom:5px;">

<label>Date Picker 2</label><input type="text" id="datepicker22" name="Datepicker2" style="border-radius:5px; font-family: sans-serif; color:#333; font-size:14px; margin-bottom:5px;">

<label>Date Picker 3</label><input type="text" id="datepicker3" name="Datepicker3" style="border-radius:5px; font-family: sans-serif; color:#333; font-size:14px; margin-bottom:5px;">

<label>Date Picker 4</label><input type="text" id="datepicker4" name="Datepicker4" style="border-radius:5px; font-family: sans-serif; color:#333; font-size:14px; margin-bottom:5px;">

jQuery

<script>
$(function() {
$( "#datepicker" ).datepicker({
        minDate:3,
        maxDate:180,
        dateFormat:"DD, d MM, yy",
        changeMonth:true,
        showButtonPanel:true
    });
});
 $(function() {
$( "#datepicker2" ).datepicker({
        minDate:3,
        maxDate:180,
        dateFormat:"DD, d MM, yy",
        changeMonth:true,
        showButtonPanel:true
    });
});
 $(function() {
$( "#datepicker3" ).datepicker({
        minDate:3,
        maxDate:180,
        dateFormat:"DD, d MM, yy",
        changeMonth:true,
        showButtonPanel:true
    });
});
 $(function() {
$( "#datepicker4" ).datepicker({
        minDate:8,
        maxDate:180,
        dateFormat:"DD, d MM, yy",
        changeMonth:true,
        showButtonPanel:true
    });
});
 </script>

原始日期选择器的代码在这里:https://jqueryui.com/datepicker/

最佳答案

这里是一个关于如何使用 @charlietfl 和 @Emm 提供的有用注释的示例。 fiddle 可以找到 here

但基本上你保留 HTML 标记,然后为 javascript 做:

var unavailableDates = ["20-5-2015", "21-5-2015", "22-5-2015", "23-5-2015", "24-5-2015", "25-5-2015"];

function unavailable(date) {
    dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
    if ($.inArray(dmy, unavailableDates) < 0) {
        return [true, "", "Book Now"];
    } else {
        return [false, "", "Booked Out"];
    }
}

$(function () {
    $("#datepicker, #datepicker2, #datepicker3, #datepicker4").datepicker({
        minDate: 3,
        maxDate: 180,
        dateFormat: "DD, d MM, yy",
        changeMonth: true,
        beforeShowDay: unavailable,
        showButtonPanel: true
    });
});

关于javascript - 如何在多个 jQueryUI 日期选择器中遮盖特定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29527704/

相关文章:

javascript - PHP,AJAX联系表上的Captcha系统问题

jquery - 压缩多个 jquery if 语句

javascript - 输入字段在 fiddle 中工作正常但在浏览器中不工作

Jquery 衬衫设计师 - 如何?

javascript - 让本地网络 IP 成为安全上下文?

javascript - 将时间戳从 24 小时更改为 12 小时并通过 jQuery 追加

javascript - 在 Rails 的 Gmaps 中默认打开 infoWindow

javascript - 如何将 RequireJS 配置放在单独的文件中并使 r.js 优化器工作?

如果在页面上调用 jQuery UI 小部件(日期选择器),jQuery Mobile 页面将无法加载?

jquery - 为什么disable_with不适用于rails form_for?