我们正在更新目前仅在模拟IE6的IE8上运行的旧应用程序。计划是让它在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。我希望下拉列表显示十分钟的时间范围,但可滚动,以便用户可以选择最初未显示在下拉列表中的时间。
有没有人经历过这个和/或修过它?
答案 0 :(得分:1)
为了获得适当的范围,您必须定义pickerMin
和pickerMax
约束(但dojo文档似乎不是非常明确的)。
您可以看到内联doc:_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>
&#13;