function formInvalid() { let firstName = ""; let email = ""; let countryCode = ""; let phoneNumber = ""; let message = ""; let invalid = 0; // Retrieve information firstName = document.getElementById('fname').value; email = document.getElementById('email').value; countryCode = document.getElementById('phonePrefix').value; phoneNumber = document.getElementById('phoneNumber').value; message = document.getElementById('message').value; // Validation // First Name if (firstName) { firstName = firstName.trim(); showformError('fname',0); } else { showformError('fname',1); invalid = 1; } // Email if (email) { email = email.trim(); var regexValidation = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; if (regexValidation.test(email)) { showformError('email',0) } else { showformError('email',1); invalid = 1; } } else { showformError('email',1); invalid = 1; } // Country Code if (countryCode && (!isNaN(countryCode.substring(1)))) { countryCode = countryCode.substring(1); } else { invalid = 1; } // Phone Number if (phoneNumber) { phoneNumber = phoneNumber.trim(); if (isNaN(phoneNumber)) { invalid = 1; showformError('phonePrefix', 1); showformError('phoneNumber', 1); } else { showformError('phonePrefix', 0); showformError('phoneNumber',0);} } else { showformError('phonePrefix', 1); showformError('phoneNumber', 1); invalid = 1; } // Message if (message) { message = message.trim(); showformError('message', 0); } else { showformError('message', 1); invalid = 1;} return [invalid, firstName, email, phoneNumber, countryCode, message]; } // Calls function to send the API function submitForm() { // Retrieve array of information from formInvalid let infoArray = formInvalid(); // First value indicates if the form is validated if (infoArray[0] == 0){ sendEmail(infoArray); return true; } return false; } // Show/Hide validation according to form input function showformError(field, notValid) { var element = document.getElementById(field); var elementLabel = document.getElementById(field+'-error'); if (notValid) { switch (field) { case "fname": case "email": element.style.setProperty('border','1px solid #E6001B','important'); elementLabel.classList.add('fade-in'); break; case "phonePrefix": element.style.setProperty('border','1px solid #E6001B','important'); break; case "phoneNumber": document.getElementById('phoneNumberDiv').style.setProperty('margin-bottom','0px','important'); element.style.setProperty('border','1px solid #E6001B','important'); element.style.setProperty('margin-bottom','0px', 'important'); elementLabel.classList.add('fade-in'); break; case "message": document.getElementById(field).style.setProperty('margin-bottom','0px','important'); element.style.setProperty('border','1px solid #E6001B','important'); elementLabel.classList.add('fade-in'); break; default: break; } } else { switch (field) { case "cname": case "fname": case "email": element.style.setProperty('border','2px solid #CED4DA','important'); elementLabel.classList.remove('fade-in'); break; case "phonePrefix": element.style.setProperty('border','2px solid #CED4DA','important'); break; case "phoneNumber": document.getElementById('phoneNumberDiv').style.setProperty('margin-bottom','1rem','important'); element.style.setProperty('border','2px solid #CED4DA','important'); element.style.setProperty('margin-bottom','15px', 'important'); elementLabel.classList.remove('fade-in'); break; case "message": document.getElementById(field).style.setProperty('margin-bottom','20px','important'); element.style.setProperty('border','2px solid #CED4DA','important'); elementLabel.classList.remove('fade-in'); break; default: break; } } }