WordPress ContactForm7 datepicker字段 - 禁用/阻止特定日期?

时间:2013-08-20 17:08:13

标签: javascript jquery wordpress datepicker contact-form-7

我目前安装了一个WordPress网站,用户可以预订我们的设施(我们是一所大学)。我已经使用ContactForm7插件在页面中创建表单,访问者可以在其中输入他们的联系信息,然后可以使用datepicker字段来选择他们想要参加的特定日期。

我的问题是(我已经搜索过高低的解决方案,但无济于事)是否有一种方法可以禁用或阻止在表单中的此datepicker字段中选择特定日期?例如,有许多天没有旅游(即假期和旅游人员不在校园的其他日子),所以我不希望这些日期可供选择。

有没有办法在插件中执行此操作,或者是否有其他方法可以执行此操作,无论是使用脚本还是通过其他插件?

我的同事向我展示了一个在他们的旅行预订表格中使用jQuery / JS datepicker字段的网站(但这不是WordPress / ContactForm7表格),并且他们能够在旅行不可用时阻止特定日期,所以我假设它应该是可能的......某种程度上。

任何帮助将不胜感激! :)

编辑:

我发现下面的代码和网站听起来它会完全正是我正在寻找的(使用类似下面的答案之一的方法看起来像)但我无法弄清楚如何添加它到我的网站,以便它的工作。我已经将它添加到我的主题的header.php文件中,并且我将id设置为“#DisabledDates” - 这也是我在表单上设置了datepicker字段ID ...但是我为“unavailableDates”设置的日期仍然可以选择......有什么想法吗?

<?php if ($post->ID==16) { ?>
<script type="text/javascript">
    var unavailableDates = ["9-5-2013", "10-5-2013", "11-5-2013", "12-5-2013", "13-5-2013", "14-5-2013", "15-5-2013", "16-5-2013", "17-5-2013", "18-5-2013", "19-5-2013", "20-5-2013", "21-5-2013", "22-5-2013", "23-5-2013", "24-5-2013"];

    jQuery(function($){
        $( "#DisabledDates" ).datepicker({
            minDate: 5,
            beforeShowDay: function(date) {
                dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
                if ($.inArray(dmy, unavailableDates) == -1) {
                    return [true, ""];
                } else {
                    return [false, "", "Unavailable"];
                }
            }
        });
    });
</script>

这里是我发现它的地方(它看起来像是一个插件,在将datepicker添加到插件之前用于扩展带有datepicker字段的CF7 ...但是我假设它应该仍然可以工作吗?):{{3 }}

2 个答案:

答案 0 :(得分:0)

您必须访问FTP才能将功能放在CF7文件中的某个位置。

或者您可以找到Wordpress使用的类并过滤掉这些日期。

答案 1 :(得分:0)

可以通过两种类型完成

  • 设置mindate和maxdate
  • 当您打开日期选择器并更改月/年时,它将在事件日期之前触发该月和年的每个日期的事件,您可以使用您的日期范围数组或对象检查该函数中的每个日期并返回true或false 。如果错误返回该日期将被取消,并且该日期将为true,

点击此链接:http://jqueryui.com/demos/datepicker/#inline http://jqueryui.com/demos/datepicker/#min-max

描述说明:“将开始日期和结束日期设置为实际日期(新日期(2009,1-1,26)),作为今天(-20)的数字偏移,或作为一系列句点和单位('+ 1M + 10D')“