you have add "*" in var theForm = $('form:first *'); because Changes are not propagated up through to the form I guess and Just bind to all the possible pieces of the form and look for changes directly there.
test and tell me if the solution works for you -- Atte. Carlos Becar.