1

我正在尝试使用 Materializecss 的Timepicker。我需要使用onSelect事件,但没有任何反应。

这是html:

<input type="text" name="time" class="timepicker">

这是javascript:

$(document).ready(function(){
    $('.timepicker').timepicker({
        onSelect:function(hour,minute){
           alert(hour+" "+minute);
        }
    });
});

时间选择器工作得很好,但是当我选择时间和小时时,什么也没有发生。控制台中没有错误,也没有显示警报...我尝试了onCloseEnd事件,但也没有任何反应。

我需要帮助 !

4

2 回答 2

4

似乎文档是错误的。我检查materialize.js并发现它timepicker没有绑定任何事件,例如,onOpenStart但datepicker 确实如此。onSelectonCloseEnd

此片段显示相同的事件,但仅绑定到 datepicker。

$('.timepicker').timepicker({
  onSelect: function(time) {
    console.log(time)
  }
});

$('.datepicker').datepicker({
  onSelect: function(time){
    console.log(time)
  }
});
.timepicker-modal,
.datepicker-modal{
  top: -5% !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-beta/css/materialize.min.css" />

<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-beta/js/materialize.js"></script>

<input type="text" name="time" class="timepicker">

<input type="text" class="datepicker">

这是一个演示,显示文档中提到的所有事件都没有被触发(它们甚至没有被注册,因为时间选择器event中没有选项。)

时间 选择器日期选择器
在此处输入图像描述


在此处输入图像描述

$('.timepicker').timepicker({
  onOpenStart: function(){
    console.log('onOpenStart')
  },
  onOpenEnd: function(){
    console.log('onOpenEnd')
  },
  onCloseStart: function(){
    console.log('onCloseStart')
  },
  onCloseEnd: function(){
    console.log('onCloseEnd')
  },
  onSelect: function(){
    console.log('onSelect')
  },
});

$('.timepicker').on('change', function() {
  console.log('change: ' + this.value)
})
.timepicker-modal{
  top: -5% !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-beta/css/materialize.min.css" />

<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-beta/js/materialize.js"></script>

<input type="text" name="time" class="timepicker">

成功的唯一方法是使用change()事件。

于 2018-04-30T15:17:31.027 回答
0

我尝试使用 on change 这个时间选择器,但由于输入值等于 '',所以它也不起作用。

于 2018-05-04T21:58:59.373 回答