Client-side validation