better client-side ajax validation, #218