5

getTime関数を使用してBootstrapTimepickerから時間を取得しようとしていますが、ボタンを押したときにのみコンソールにエラーメッセージが表示されます(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を呼び出すことは可能ですが、実際のタイムピッカーオブジェクトではなく、DOMから<input>要素を返すgetTime()ため、直接呼び出すことはできません。$('.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メソッドはその関数専用です。あなたがそれにアクセスできないことを意味します。

時間を取得したい場合は、を実行し.val();て解析してください。または、スクリプトを変更して関数を公開することもでき.getTime();ます。

于 2012-07-20T05:14:59.760 に答える