如何使用dijit / form / TimeTextBox?

时间:2014-11-24 09:35:34

标签: javascript dojo

<input type="text" name="date1" id="time1" value="T15:00:00"
data-dojo-type="dijit/form/TimeTextBox"
onChange="require(['dojo/dom'], function(dom){dom.byId('val').value=dom.byId('time1').value.toString().replace(/.*1970\s(\S+).*/,'T$1')})"
required="true" />

这是我一直在研究的代码。在这里,我需要将差异显示为1小时,而下拉显示差异的时间为15分钟。同时我想显示从上午8点到下午2点的限制 也有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:3)

使用dojo-data-props设置约束。首先是您的增量,现在设置为15分钟,到一小时:

constraints: {
    clickableIncrement: 'T01:00:00',
    visibleIncrement: 'T01:00:00'
}

要首先设置可用时间增量的范围,您需要计算最小值和最大值:

//today
var today = new Date();

//today 8am
var min = new Date(
    today.getYear(),
    today.getMonth(),
    today.getDay(),
    8, 0, 0);

//today 2pm
var max = new Date(
    today.getYear(),
    today.getMonth(),
    today.getDay(),
    14, 0, 0);

然后在约束中定义它们:

constraints: {
    min: min,
    max: max
}

您还应该将所选值设置为data-dojo-props,以便它们符合您的约束条件:

value: min

总结如下:

<script>
var today = new Date();
var min = new Date(
    today.getYear(),
    today.getMonth(),
    today.getDay(),
    8, 0, 0);
var max = new Date(
    today.getYear(),
    today.getMonth(),
    today.getDay(),
    14, 0, 0);
</script>
<input type="text" name="date1" id="time1" value="T15:00:00"
data-dojo-type="dijit/form/TimeTextBox"  onChange="require(['dojo/dom'], function(dom){dom.byId('val').value=dom.byId('time1').value.toString().replace(/.*1970\s(\S+).*/,'T$1')})"
required="true" data-dojo-props="value: min, constraints:{ min: min, max: max, clickableIncrement: 'T01:00:00', visibleIncrement: 'T01:00:00'}"/>

这是关于Plunker的一个工作示例:http://plnkr.co/edit/Fl0gQnzwY6RjyjA2syPZ