2013-06-11 23 views
1

我是JavaScript新手(来自Flex)。我使用的是选择二组件显示一天中的时间以15个分钟为增量:使用Select2组件预选时间

<select id="e2" style="width:125px"> 
    <option value="00:00:00">12:00 AM</option> 
    <option value="00:15:00">12:15 AM</option> 
    <option value="00:30:00">12:30 AM</option> 
    <option value="00:45:00">12:45 AM</option> 
    <option value="01:00:00">1:00 AM</option> 
    <option value="01:15:00">1:15 AM</option> 
    <option value="01:30:00">1:30 AM</option> 
    <option value="01:45:00">1:45 AM</option> 
</select> 

我想是预先选择当前时间最为匹配(在未来)的时间;例如,如果现在是12点02分,我想选择12:15(不是12:00)。

我的问题是如何以及在哪里使用Select2。

难道我用的是“初始化选择”方法,当我初始化组件:

$('#e2').select2(); 

或者是更好地做点别的?

下面是我使用(在Flex中)设置日期的当前方法。我只是有点不确定在哪里用Select2组件做到这一点。

任何提示,非常感谢。谢谢!

+0

您是否阅读过Select2插件文档?如果没有在这里检查示例:http://ivaynberg.github.io/select2/ – Learner

+0

是的,这就是我想要使用initSelection方法。但是当我阅读它时,它看起来更像是一个映射实用程序,而不是设置初始值的好地方。 – fumeng

回答

1

为了达到目的,我想说最好的方法是创建自己的函数来查找最接近的时间段,然后格式化字符串以匹配您的选择选项值。

下面是示例代码(你需要,你需要对其进行格式化),但它为我工作了当前时间在这里:

样品:http://jsfiddle.net/ZC5tG/

HTML

<select id="e2" style="width:125px"> 
     <option value="12:00:00">12:00 AM</option> 
     <option value="12:15:00">12:15 AM</option> 
     <option value="12:30:00">12:30 AM</option> 
     <option value="12:45:00">12:45 AM</option> 
     <option value="01:00:00">1:00 AM</option> 
     <option value="01:15:00">1:15 AM</option> 
     <option value="01:30:00">1:30 AM</option> 
     <option value="01:45:00">1:45 AM</option> 
    </select> 

jQuery

<script> 
    function getNearestTimeSlotString() { 
     var now = new Date(); 
     var hour = now.getHours(); 
     var minutes = now.getMinutes(); 
     var ampm = "AM"; 
     if (minutes < 15) { 
      minutes = "00"; 
     } else if (minutes < 30){ 
      minutes = "15"; 
     }else if (minutes < 45){ 
      minutes = "30"; 
     } else { 
      minutes = "00"; 
      ++hour; 
     } 
     if (hour > 23) { 
      hour = 12; 
     } else if (hour > 12) { 
      hour = hour - 12; 
      ampm = "PM"; 
     } else if (hour == 12) { 
      ampm = "PM"; 
     } else if (hour == 0) { 
      hour = 12; 
     } 

     return(hour + ":" + minutes + ":00"); 
    } 
$(document).ready(function(e) { 
    alert(getNearestTimeSlotString()); 
    $("#e2").val(getNearestTimeSlotString); 
}); 

+0

因此,“initSelection”过于复杂了。我需要的只是设置.val()。非常感谢你!! – fumeng