Javascript 在Dojo日历小部件中选择多个日期

Javascript 在Dojo日历小部件中选择多个日期,javascript,json,dojo,Javascript,Json,Dojo,我目前正在使用dojo日历小部件,如 我的要求是: 选择多个日期以将所选日期标记为假日,并将其保存在DB中 将所选日期作为JSON或数组推送 选择日期后,需要用某种颜色标记背景色,以确认已选择日期 取消选择后,需要将背景色更改回白色,以确认其未选择 如何做到这一点? 我非常感激你的帮助 -Vinoth您可以尝试以下方法: <head> <script type="text/javascript"> var selectedDates = {};

我目前正在使用dojo日历小部件,如

我的要求是:

  • 选择多个日期以将所选日期标记为假日,并将其保存在DB中
  • 将所选日期作为JSON或数组推送
  • 选择日期后,需要用某种颜色标记背景色,以确认已选择日期
  • 取消选择后,需要将背景色更改回白色,以确认其未选择
  • 如何做到这一点? 我非常感激你的帮助

    -Vinoth

    您可以尝试以下方法:

     <head>
        <script type="text/javascript">
            var selectedDates = {};
        </script>
     </head>
     <body class="soria">
        <style type="text/css">
            @import "dojox/widget/Calendar/Calendar.css";
        </style>
        <div dojoType="dojox.widget.Calendar">
            <script type="dojo/connect" event="onValueSelected" args="date">
                if (!selectedDates[date]) {
                    selectedDates[date] = 1;
                } else {
                    delete selectedDates[date];
                }
                var list = dojo.byId("selectedDates");
                dojo.attr(list, "innerHTML", "");
                for (var date in selectedDates) {
                    if (selectedDates.hasOwnProperty(date)) {
                        dojo.create("li", {"innerHTML":date}, list);
                    }
                }
    
            </script>
        </div>
        <ul id="selectedDates"></ul>
    </body>
    
    
    var selectedDates={};
    @导入“dojox/widget/Calendar/Calendar.css”;
    如果(!selectedDates[日期]){
    所选日期[日期]=1;
    }否则{
    删除所选日期[日期];
    }
    var list=dojo.byId(“selectedDates”);
    attr(列表,“innerHTML”,“”);
    for(所选日期中的var日期){
    如果(已选择日期hasOwnProperty(日期)){
    create(“li”,{“innerHTML”:date},list);
    }
    }
    

      我还没有弄清楚如何保持选定单元格的颜色,但这应该是可行的…

      有一个实验性小部件

      感谢您指出MultiSelectCalendar小部件。但这在dojo 1.7中可用,我使用dojo 1.6:(我的客户在不久的将来不会批准1.7。有没有办法用某种颜色突出显示所选日期?嘿,看起来很棒!@Vinoth:也许你可以看看这个新的小部件代码,并在你的1.6版本上重新实现着色部分?!我还没有看过,所以我不知道这有多困难…@Vinoth,你可以试试我的版本。)看到一些旧的补丁,我认为它最初是针对Dojo 1.6.Hmm设计的。顺便问一下,我可以从1.7主干中单独使用multiSelectCalendar.js并将其与1.6合并吗?这会起作用吗?或者需要做一些额外的事情才能使它起作用吗?据我所知,Dojo中必须做一些事情.js I guess.IIRC,MultiSelectCalendar使用私有API,在1.6/1.7版本中不兼容,因为在该版本中对Calendar进行了重大重构。非常感谢您提供的解决方案。工作非常完美,但我无法更改选择和取消选择的颜色:(