Разрабатывая сайт для клиента, столкнулся с неприятной ситуацией — 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. Т.е. при клике на инпут под полем появлялся календарик, в котором человек выбирал необходимую ему дату.