Во-первых, я бы изменил событие изменения JQuery так, чтобы оно срабатывало, даже если вы изменяете его динамически с помощью функции val
.Это действительно не имеет смысла для меня, почему это не поведение по умолчанию в JQuery.Вот код для этого:
//Store the old val function
$.fn.custom_oldVal = $.fn.val;
//Update the val function to fire the change event where appropriate:
$.fn.val = function(value) {
if(value == null || value == undefined){
return this.custom_oldVal();
} else {
//Only call onchange if the value has changed
if(value == this.custom_oldVal()){
return this;//Return this object for chain processing
} else {
return this.custom_oldVal(value).change();
}
}
}
Если вам нужно, чтобы он запускался в другое время, добавьте также тех прослушивателей событий, следуя процедуре, упомянутой jimbojw.