2

我试图从使用getTime函数的Bootstrap Timepicker中获取时间,但是只有在按下按钮时才会在控制台中获取错误消息(使用我的按钮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

这不是一个公共函数,getTime方法对于该函数是私有的。意思是你无法访问它。

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

11

FWIW它可以调用getTime(),但它不能被称为直接因为$('.timepicker')返回从DOM <输入>元件,而不是实际timepicker对象。

这不是在文档中提到的,但如果你看看自举timepicker.js源,则绑定功能($.fn.timepicker)存储到针对DOM元素的实际timepicker对象的引用,使用jQuery的数据()功能。

所以,这个工程:

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

(当然getTime()还只是返回一个字符串,所以在这种情况下,使用VAL()的父母的建议可能是更清洁,除非你认为有可能是输入无效数据进入现场,并没有通过时间选择器清理。)

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

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

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

这解决了我的问题,谢谢。 – 2016-07-31 11:09:49