Client side form validation and asynchronous submission and file upload