Nitti Gritty Tax by Tony NittiIndispensable weekly tax guide along with news, analysis and commentary. Try the first three-weeks for free and continue for $20/month thereafter.
You're signed up for a free trial to Nitti Gritty Tax by
Tony Nitti
!Check your inbox for an email from the editor and a link to manage your email preferences. To ensure successful delivery, please whitelist forbes@email.forbes.com.
const emitShowEvent = () => {
setTimeout(() => {
var trackingShow = document.querySelector('#tracking-show');
trackingShow.click();
}, 500);
}
if(document.readyState === "complete"
|| document.readyState === "loaded"
|| document.readyState === "interactive"
) {
emitShowEvent();
} else {
document.addEventListener('DOMContentLoaded', emitShowEvent);
}
const emailInput = document.querySelector('.pn-modal__input');
const emailRegExp = /^(([^<>()\[\]\\.,;:\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,}))$/;
const errorMessage = document.querySelector('.pn-modal__error-message');
const submitButton = document.querySelector('.pn-modal__button')
let successScreen = document.getElementById('successScreen');
let initialScreen = document.getElementById('initialScreen');
submitButton.disabled = true;
/** @function showErrorMessage
* @param {boolean} isErrorMessageShowing
* @param {string} message
*/
const showErrorMessage = (isErrorMessageShowing, message) => {
submitButton.disabled = !!isErrorMessageShowing;
errorMessage.innerText = message;
}
/* EventListener that removes the error message and disables the submit
button when the input field is not on focus. */
emailInput.addEventListener('blur', () => {
if (emailInput.value === '') {
showErrorMessage(false, '');
}
});
/* EventListener to enable / disable error the message notification based on users input */
emailInput.addEventListener('input', () => {
if (emailRegExp.test(emailInput.value)) {
showErrorMessage(false, '');
}
else if (emailInput.value === '') {
showErrorMessage(true, 'Please enter your email');
} else {
showErrorMessage(true, 'Please enter a valid email');
}
})
/* SubmitButton Event Listener */
submitButton.addEventListener('click', () => {
if (emailRegExp.test(emailInput.value)) {
successScreen.style.display = 'flex';
initialScreen.style.display = 'none';
}
});