Added client-side form validation