在输入上启动时间选择器时更改事件触发

时间:2019-07-23 16:27:51

标签: jquery timepicker

在我的代码中,我将输入添加到页面中呈现的div上,如下所示:

$("#output-area").append("<input type='text' class='timepicker' /><input type='text class='timepicker' />

追加后,我将启动时间选择器,如下所示:

$('.timepicker').timepicker({
     timeFormat: 'h:mm p',
     interval: 30,
     minTime: '12:00am',
     maxTime: '11:30pm',
     defaultTime: '9:00am',
     dynamic: false,
     dropdown: true,
     scrollbar: true,
     change: function(){
           console.log("triggered");
     }
});

奇怪的是,当我创建时间选择器时,将更改事件添加到DOM时便触发了更改事件。我认为只有在输入的值已 changed created建立时,更改事件才会触发。

1 个答案:

答案 0 :(得分:1)

无需修改插件本身,您可以在循环中初始化并在每个实例内为isInit之类的设置标志,这样您就不会对初始调用做出反应:

$('.timepicker').each(function() {
  var isInit = true;
  $(this).timepicker({
    timeFormat: 'h:mm p',
     .....
    change: function() {
      if (!isInit) {
        console.log("triggered");
      }
      isInit = false
    }
  });
});

也许您可以使用另一个事件,但是周围有许多时间选择器插件,因此不确定您使用的是哪个。

对我来说,这似乎是插件中的错误