【问题标题】:Telerik Kendo TimePicker Min / Max setting get ignoredTelerik Kendo TimePicker Min / Max 设置被忽略
【发布时间】:2016-07-20 06:35:26
【问题描述】:

我有两个 Kendo TimePicker:fromto

我试图实现的是使用 JavaScript 来更改这些 TimePickers 的下拉列表选项的范围。两个 TimePickers 的间隔都是 30 分钟,从 00:00 到 23:30。

例如,如果选择from 到 14:30,则打开to 时的选项将至少为 14:30。同样,如果选择to到20:00,那么from的最大选项是20:00

我已经编写了我的代码,一切似乎都还好除了fromto 都选择最后一个选项(23:30)时,预期的行为是to 的选项是只有 23:30 本身。然而,实际上to 的选项是所有时间跨度,间隔为 30 分钟,从 23:30 开始,到 23:00(即 23:30、00:00、00:30、... 23: 00)

我尝试了许多其他“组合”,包括都设置为 00:00,都显示正确的行为,除了这种情况。我想知道这是否是 Telerik 控件的已知错误,还是我的代码有什么问题?如何实现预期的行为?

var $start = $startSel.data("kendoDateTimePicker");
var $end = $endSel.data("kendoDateTimePicker");

var start = $startSel.val() == "" ? null : $start.value();
var end = $endSel.val() == "" ? null : $end.value();

if (start != null) {
  $end.min(comLib.ceilTo30Minute(start));
} else {
  $end.min(new Date(1900, 0, 1));
  $end.max(new Date(2099, 11, 31));
}
if (end != null) {
  $start.max(comLib.floorTo30Minute(end));
} else {
  $start.min(new Date(1900, 0, 1));
  $start.max(new Date(2099, 11, 31));
}


///////////////////// in comLib

function ceilTo30Minute (dateTime) {
   if (dateTime == null)
     return null;
   var min = dateTime.getMinutes() % 30;
   if (min != 0)
   {
     dateTime = publicAccess.addTime(dateTime, 0, -min);
     dateTime = publicAccess.addTime(dateTime, 0, 30);
   }
   return dateTime;
};
function floorTo30Minute(dateTime) {
  if (dateTime == null)
    return null;
  var min = dateTime.getMinutes() % 30;
  if (min != 0) {
    dateTime = publicAccess.addTime(dateTime, 0, -min);
  }
  return dateTime;
};

【问题讨论】:

    标签: javascript kendo-ui telerik kendo-asp.net-mvc


    【解决方案1】:

    我打开了一张支持票,Telerik 回复了我,结果这似乎是一个 Kendo UI 错误。这里我引用他们的回复:

    这似乎是 DateTimePicker 中的一个错误,我会将其转发给我们的开发团队进行进一步调查。暂时您可以处理第二个 DateTimePicker 的 open 事件并手动隐藏不需要的时间:

    datetimepicker.bind("open", function(e) {
        if (e.view === "time" && e.sender.min().toString().indexOf("23:30:00") >= 0) {      
            var times = e.sender.timeView.popup.element.find("li");
            for(var i=1; i < times.length; i++){
                $(times[i]).hide();
            }
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 2014-06-25
      相关资源
      最近更新 更多