lol.js makes it easy to provide inline form validation and save progress in local storage incase of interruption.