jQuery textbox.val('xxxx') not causing change to fire?

That's the way it works. If you need the change of value to trigger the "change" event, you can explicitly do so by:

$('input#whatever').val('hi').change();

$('.change').change() will fire the event. Just changing the attributes doesn't fire the event.