从Bootstrap Timepicker获取时间

时间:2012-07-20 05:00:42

标签: javascript jquery ruby-on-rails twitter-bootstrap timepicker

我正在尝试使用Bootstrap Timepicker函数从getTime获取时间,但只有在按下按钮时才会在控制台中收到错误消息(带有我的按钮的ID,请参阅代码如下。)

HTML

<div class="input-append bootstrap-timepicker-component">
    <input type="text" class="timepicker input-small">
    <span class="add-on">
        <i class="icon-time"></i>
    </span>
</div>

的JavaScript

<script type="text/javascript">
  $('#my-button').on('click', function() {
    alert($('.timepicker').getTime());
  });

  $('.timepicker').timepicker({
    template : 'dropdown',
    showInputs: false,
    showSeconds: false
  });
</script>

控制台出错

Uncaught TypeError: Object [object Object] has no method 'getTime'

我一直试图弄清楚这几个小时。我以为我可以使用源代码来学习如何使用选择器,它看起来像是一个getTime()函数,但我不能为我的生活弄清楚如何使用它。我正在使用Rails,因为它的价值。谢谢你们!

3 个答案:

答案 0 :(得分:12)

FWIW可以调用getTime(),但无法直接调用,因为$('.timepicker')会返回&lt; input&gt;来自DOM的元素,而不是实际的timepicker对象。

文档中没有提到它,但是如果你看一下bootstrap-timepicker.js源代码,那么绑定函数($.fn.timepicker)会使用jQuery的数据存储对DOM元素的实际timepicker对象的引用( )功能。

所以,这有效:

$('.timepicker').data("timepicker").getTime();

(当然getTime()仍然只返回一个字符串,所以在这种情况下,父母建议使用val()可能更干净,除非你认为可能有无效的数据输入到字段中,还没有被清除时间戳。)

答案 1 :(得分:10)

$('#ReportingTime').data('timepicker').hour;

$('#ReportingTime').data('timepicker').minute;

$('#ReportingTime').data('timepicker').meridian;

答案 2 :(得分:4)

这不是一个公共函数,方法getTime只对该函数是私有的。这意味着您无法访问它。

如果你想得到时间,只需做一个.val();并解析它。或者您可以修改脚本以公开.getTime();函数。