An error has occurred

{{terminalError}}

Nitti Gritty Tax by Tony Nitti Indispensable weekly tax guide along with news, analysis and commentary. Try the first three-weeks for free and continue for $20/month thereafter.

You may opt out any time. Terms and Conditions and Privacy Policy
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 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'; } });