0

使用最新版本的 jquery ui 日期选择器,我想根据所选日期显示一个隐藏的 div。

这个想法是让日期选择器内联显示,当用户选择一个日期时,将显示一个与该日期对应的隐藏 div。

这是我到目前为止所得到的......我认为我需要使用 onSelect 但我无法根据其他 stackoverflow 问题将它放在一起。

    $("#inlinedatepicker").datepicker({
    onSelect: function(date) {
        $('.tohide').hide();
        $('#date' + date).show();
    },
    inline: true,
    minDate: new Date(currentYear),
    beforeShowDay: function(date) {
        if (date.getDay() == 0 || date.getDay() == 1 || date.getDay() == 2 || date.getDay() == 3) {
            return [false, ''];
        } else {
            return [true, ''];
        }
    }
});

因此,如果您选择 2013 年 1 月 1 日,则会显示 ID= date01/01/2013 的 div。我认为斜线不被接受,那么有没有办法解决这个问题?

2013 年 1 月 1 日 div 的 HTML 如下所示...

<div id="date01/01/2013">...</div>
4

1 回答 1

1

问题之一可能是传递到 onSelect 事件处理程序的“日期”是格式为“01/18/2013”​​的字符串(取决于浏览器的文化设置)。看起来您正在使用此字符串(附加日期)来选择 div。但是 jQuery 选择器在遇到像“/”这样的特殊字符时会抛出异常。一种解决方法是使用

document.getElementById('date' + date).style.display = "block"; // this works  
                                                                // with "date01/18/2013"

您还可以设置不带斜杠的选择器 ID,然后在 onSelect 事件处理程序中从字符串中删除斜杠,并在 jquery 选择器中使用它。

于 2013-01-02T18:51:04.140 回答