У меня есть код JS, в котором при изменении поля он вызывает процедуру поиска. Проблема в том, что я не могу найти какие-либо события jQuery, которые сработают, когда Datepicker обновит поле ввода.
По какой-то причине событие изменения не вызывается, когда Datepicker обновляет поле. Когда календарь всплывает, он меняет фокус, поэтому я тоже не могу его использовать. Любые идеи?
jquery
datepicker
zbestzeus
источник
источник
Ответы:
Вы можете использовать
onSelect
событие DatePicker .Живой пример :
Показать фрагмент кода
К сожалению,
onSelect
срабатывает каждый раз , когда выбрана дата, даже если она не изменилась. Это недостаток дизайна в средстве выбора даты: он всегда срабатываетonSelect
(даже если ничего не изменилось) и не генерирует никаких событий в базовом вводе при изменении. (Если вы посмотрите код этого примера, мы выслушиваем изменения, но они не вызываются.) Вероятно, при возникновении изменений должно возникать событие на входе (возможно, обычноеchange
событие или, возможно, средство выбора даты). конкретный).Если вам нравится, конечно, вы можете устроить
change
мероприятие наinput
костре:Это сработает
change
в основеinput
для любого обработчика, подключенного через jQuery. Но опять же, это всегда срабатывает. Если вы хотите использовать только реальные изменения, вам нужно сохранить предыдущее значение (возможно, черезdata
) и сравнить.Живой пример :
Показать фрагмент кода
источник
change
обработчик (и)», и поэтому я обновил ответ этим. :-)Ответ TJ Crowder ( https://stackoverflow.com/a/6471992/481154 ) очень хороший и все еще остается точным. Запуск события изменения в функции onSelect настолько близок, насколько вы собираетесь получить.
Однако в объекте datepicker (
lastVal
) есть замечательное свойство , которое позволит вам условно инициировать событие изменения только для реальных изменений, не сохраняя значения самостоятельно:Затем просто обработайте события изменения как обычно:
источник
lastVal
однако, есть ;-)lastVal
не существует в объекте datepicker, по крайней мере, в моем тестировании. Таким образом, это решение всегда будет вызывать изменения.Вы ищете событие onSelect в объекте datepicker :
источник
Я написал это, потому что мне нужно решение, чтобы вызвать событие, только если дата изменилась.
Это простое решение. Каждый раз, когда диалоговое окно закрывается, мы проверяем, изменились ли данные. Если это так, мы запускаем пользовательское событие и сбрасываем сохраненное значение.
Теперь мы можем подключить обработчики для этого пользовательского события ...
источник
источник
Я использую bootstrap-datepicker, и ни одно из вышеуказанных решений не помогло мне. Этот ответ помог мне ..
событие изменения даты загрузчика начальной загрузки не запускается при ручном редактировании дат или очистке даты
Вот что я применил:
Надеюсь, что это может помочь другим.
источник
На jQueryUi 1.9 мне удалось заставить его работать с помощью дополнительного значения данных и комбинации функций beforeShow и onSelect:
Работает для меня :)
источник
Я знаю, что это старый вопрос. Но я не смог получить событие jquery $ (this) .change () для корректного запуска onSelect. Таким образом, я использовал следующий подход для запуска события изменения через vanilla js.
источник
Попробуй это
Надеюсь это поможет:)
источник
Пытаться :
источник
Руководство говорит:
Так:
Работает для меня.
источник
Мое решение:
источник
Мое решение:
источник
DatePicker выбранный код события изменения значения ниже
источник
если вы используете wdcalendar, это поможет вам
у меня событие onReturn работает
надеюсь, это поможет
источник
Я думаю, что ваша проблема может заключаться в том, как настроен ваш DatePicker. Почему бы вам не отключить вход ... не используйте altField. Вместо этого явно установите значения при срабатывании onSelect. Это даст вам контроль над каждым взаимодействием; текстовое поле пользователя и указатель даты.
Примечание. Иногда вам нужно вызывать подпрограмму для .change (), а не для .onSelect (), потому что onSelect может вызываться для разных взаимодействий, которые вы не ожидаете.
Псевдокод:
источник