fix .val() doesn't trigger .change()