【问题标题】:Getting the time from a Bootstrap Timepicker从 Bootstrap Timepicker 获取时间
【发布时间】:2012-07-19 08:43:42
【问题描述】:

我正在尝试使用 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,因为它的价值。谢谢大家!

【问题讨论】:

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


    【解决方案1】:

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

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

    所以,这行得通:

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

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

    【讨论】:

      【解决方案2】:
      $('#ReportingTime').data('timepicker').hour;
      
      $('#ReportingTime').data('timepicker').minute;
      
      $('#ReportingTime').data('timepicker').meridian;
      

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-15
          • 2019-07-22
          • 1970-01-01
          • 2011-04-28
          • 2012-09-03
          • 2018-10-05
          • 1970-01-01
          • 2019-05-02
          相关资源
          最近更新 更多