Разрабатывая сайт для клиента, столкнулся с неприятной ситуацией — jquery скрипт отказывался отлавливать изменение текстового input-a, который изменялся сторонним скриптом (автозаполнение). Обычно, подобные проблемы решаются элементарным jQuery(‘body’).on(‘change’, ‘.buttom_update’, function(){, однако, в моем случае подобная конструкция не приносила результата, тогда, погуглив, нашел решение http://jsfiddle.net/VHgkN/21/ , однако, его также пришлось допиливать. В результате у меня вышло следующее:
(function($){ /* код ниже включает отлавливание */ var oldVal = $.fn.val; $.fn.oldVal = oldVal; $.fn.val = function(value){ if(!value) return this.oldVal(); else { return this.each(function(){ $(this).oldVal(value); $(this).change(); }); } }; /* end код ниже включает отлавливание */ $(document).ready(function(){ $(‘#calendar’).change(function(){ /* Тут обработчик события */ }); });
Сам html код инпута выглядел так:
<div class="sobytiya-navbar"> <input id="calendar" name="date" value="Выбор даты" type="text" /></div> </div>
На него я «вешал» jquery календарь simpleDatepicker. Т.е. при клике на инпут под полем появлялся календарик, в котором человек выбирал необходимую ему дату.