Client-side form input validation

Do not rely on HTML5 validation