5

我正在尝试使用getTime函数从Bootstrap Timepicker获取时间,但是当我按下按钮时,只会在控制台中收到一条错误消息(带有 my-button 的 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,因为它的价值。多谢你们!

4

3 回答 3

13

FWIW 可以调用getTime(),但不能直接调用,因为$('.timepicker')从 DOM 返回 <input> 元素,而不是实际的 timepicker 对象。

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

所以,这有效:

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

(当然getTime()仍然只是返回一个字符串,因此在这种情况下,父母使用 val() 的建议可能更清晰,除非您认为可能在字段中键入了无效数据,并且尚未被时间选择器清除。)

于 2012-09-18T01:47:29.887 回答
11
$('#ReportingTime').data('timepicker').hour;

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

$('#ReportingTime').data('timepicker').meridian;
于 2015-05-31T08:42:54.120 回答
5

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

如果您想获得时间,只需执行 a.val();并解析它。或者您可以修改脚本以公开.getTime();功能。

于 2012-07-20T05:14:59.760 回答