La solución de Jonathon Bolster no cubre todos los casos. Lo adapté para cubrir también las modificaciones cortando y pegando:
$("#inputname").on('change keyup copy paste cut', function() {
//!this.value ...
});
ver http://jsfiddle.net/gonfidentschal/XxLq2/
Desafortunadamente no es posible coger los casos en que el valor del campo se establece usando javascript. Si configura el valor usted mismo no es un problema porque sabe cuándo lo hace ... pero cuando está utilizando una biblioteca como AngularJS que actualiza la vista cuando el estado cambia, puede ser un poco más laborioso. O tiene que usar un temporizador para verificar el valor.
Consulte también la respuesta para Detecting input change in jQuery? que sugiere el evento de 'entrada' que entienden los navegadores modernos. Por lo que sólo:
$("#inputname").on('input', function() {
//!this.value ...
});
No hay solución aquí arreglar la situación si se utiliza type = "search" y el botón de borrado predeterminado. – luky