Sie können sehr einfach die val
Funktion, um eine Änderung auszulösen, indem sie durch einen Proxy für die ursprüngliche val
Funktion.
Fügen Sie einfach diesen Code irgendwo in Ihr Dokument ein (nach dem Laden von jQuery)
(function($){
var originalVal = $.fn.val;
$.fn.val = function(){
var result =originalVal.apply(this,arguments);
if(arguments.length>0)
$(this).change(); // OR with custom event $(this).trigger('value-changed');
return result;
};
})(jQuery);
Ein praktisches Beispiel: aquí
(Beachten Sie, dass dies immer eine change
wenn val(new_val)
wird auch dann aufgerufen, wenn sich der Wert nicht wirklich geändert hat).
Wenn Sie eine Änderung NUR dann auslösen wollen, wenn sich der Wert tatsächlich geändert hat, verwenden Sie diese Option:
//This will trigger "change" event when "val(new_val)" called
//with value different than the current one
(function($){
var originalVal = $.fn.val;
$.fn.val = function(){
var prev;
if(arguments.length>0){
prev = originalVal.apply(this,[]);
}
var result =originalVal.apply(this,arguments);
if(arguments.length>0 && prev!=originalVal.apply(this,[]))
$(this).change(); // OR with custom event $(this).trigger('value-changed')
return result;
};
})(jQuery);
Ein lebendes Beispiel dafür: http://jsfiddle.net/5fSmx/1/