为什么 dijit TimeTextBox 不以下拉列表中的值为中心?

Why is dijit TimeTextBox not centering on value in drop down?

我们正在更新一个遗留应用程序,该应用程序目前只能在 IE8 上模拟 IE6。运行s。计划是在 IE11 企业模式下使用它 运行。部分应用程序使用 dojo,我们团队中很少有人知道,我用 google 和 google 搜索了很多,但找不到这个问题的答案!

我有一个 dijit TimeTextBox 定义如下:

var timePicker = new TimeTextBox({
  value: new Date(),
  tabindex: 30,
  id: "Picker",
  name: "Picker",
  style: "width:70px",
  constraints: {
    timePattern: 'HHmm',
    clickableIncrement: 'T00:01',
    visibleIncrement: 'T00:01',
    visibleRange: 'T00:30',
  }
}, "PickerId");

并且在 IE8 上模拟 IE6 这工作正常。下拉列表以当前值为中心,并在下拉列表中显示从前 4 分钟到后 5 分钟的时间。在 IE11 中,该框显示正确的值,但下拉列表从 00:00 开始并显示最大 00:30 的值。我希望下拉菜单显示十分钟的时间范围但可以滚动,以便用户可以选择最初未显示在下拉菜单中的时间。

有没有人经历过这个and/or修复它?

为了获得合适的范围,您必须定义 pickerMinpickerMax 约束(但 dojo 文档似乎并没有明确说明)。
您可以看到内联文档:_TimePicker.js 第 34 行。

require(["dijit/form/TimeTextBox", "dojo/domReady!"], function(TimeTextBox){
    var now = new Date();
    var before = new Date(now.getTime() - (60 * 4 * 1000)); // - 4 minutes
    var after = new Date(now.getTime() + (60 * 5 * 1000)); // + 5 minutes
    var timePicker = new TimeTextBox({
      value: now,
      tabindex: 30,
      id: "Picker",
      name: "Picker",
      style: "width:70px",
      constraints: {
        timePattern: 'HHmm',
        clickableIncrement: 'T00:01',
        visibleIncrement: 'T00:01',
        visibleRange: 'T00:30',
        pickerMin: before.toISOString(),
        pickerMax: after.toISOString()
      },
      
    }, "PickerId");
});
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/resources/dojo.css"> 
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/tundra/tundra.css">
<div class="tundra">
  <input id="PickerId" type="text" />
</div>