В любое время триггеры time / datepicker изменяют событие каждый раз, когда поле ввода фокусируется даже без изменения содержимого. Как этого избежать?
Как указано в заголовке, я получаю событие изменения каждый раз, когда фокусируюсь на вводимом текстовом поле с прикрепленным маркером даты / времени в любое время. Есть ли способ избежать такого поведения? Поскольку я, очевидно, хочу получить событие изменения, когда я действительно что-то изменяю.
Я вижу это поведение на Firefox и Chrome. Не пробовал IE
2 ответа
Если это действительно так, достаточно просто где-то вспомнить предыдущее значение и вызывать вашу "реальную" функцию изменения только тогда, когда значение не совпадает.
$("relevant-selector").on("change", function() {
var $this = $(this),
val = $this.val(),
prev = $this.data("prevValue");
if (val !== prev) {
handleChange();
$this.data("prevValue", val);
}
});
Вы также можете сообщить об ошибке разработчикам плагинов. Или, если это открытый исходный код, сообщите об этом, исправьте и отправьте им запрос на извлечение.
@Toksan, я изменил библиотеку, чтобы вызвать событие change(), только когда значение поля ввода действительно изменяется. Пожалуйста, загрузите версию 5.0.2 с ama3.com/anytime и отправьте мне сообщение через мою страницу контактов, чтобы сообщить, как это работает для вас.
Если у вас есть будущие проблемы, вопросы или предложения относительно библиотеки, пожалуйста, отправьте мне сообщение через мою страницу контактов для более быстрого решения.