https://medium.com/@Marioskif/javascript-daily-tips-38-the-best-way-to-handle-form-validation-6b4097cf3592