时间下拉列表

时间:2014-10-06 17:45:13

标签: javascript jquery html dojo

我希望以小时和分钟为单位停用过去的时间。请找到我尝试过的代码http://jsfiddle.net/7de4onun/18/。 在单个下拉列表中显示小时和分钟时,我能够从时间下拉列表中禁用过去时间。但我怎么能禁用 过去的小时和分钟,小时和分钟在单个下拉列表中单独显示,如小提琴中所示,基于用户从日期下拉列表中选择的日期。

以下是示例代码:

require([
           "dojo/_base/lang", "dijit/registry", "dojo/ready", "dijit/form/TimeTextBox", "dojo/parser"
       ], function(lang, registry, ready) {
           ready(function() {
               var timeH = registry.byId("selHours"),
               timeM = registry.byId("selMins");
               document.getElementById('selHours').value = document.getElementsByName('tHours')[0].value;
               document.getElementById('selMins').value = document.getElementsByName('tMinutes')[0].value;
            });
       }); 

请在此处找到完整代码:http://jsfiddle.net/7de4onun/18/

PS:我想根据用户选择的日期禁用已经过的小时和分钟,这样用户就无法从下拉列表中选择传递的小时或分钟。

1 个答案:

答案 0 :(得分:1)

请通过小提琴http://jsfiddle.net/7de4onun/19/

通过以下几项更改,您可以实现

  1. 添加了属性" data-dojo-id"小时和分钟元素如下

    Hours: <input id="selHours" name="selHours" data-dojo-id="dojoSelHours"  />
    Minutes: <input id="selMins" name="selMins" data-dojo-id="dojoSelMins" />
    
  2. 在OracleDateTextBox控件更改处理程序中,您可以看到以下更改。

    onChange: function(v){
        setTimeout(showServerValue, 0);
    
        var currentTime=new Date();//new Date(v.getYear(), v.getMonth(), v.getDay(), 9, 25, 0);
    
        //Hour min constraints
        dojoSelHours.constraints.min= currentTime;
    
        //Minute min constraints
        dojoSelMins.constraints.min= currentTime;
    }