Удалите сообщение об ошибке проверки после закрытия и повторного открытия всплывающего окна

#javascript #validation #popup

Вопрос:

Я не могу понять, как удалить сообщение об ошибке проверки после того, как пользователь закрыл всплывающее окно (сообщение об ошибке проверки исчезает, если пользователь вводит правильные значения в поля ввода и нажимает «Отправить», но если пользователь закрывает всплывающее окно после появления ошибки проверки, ошибка проверки сохранится даже при повторном открытии всплывающего окна пользователем).

Код, который я использую для проверки:

 enableValidation ({  formSelector: '.edit-form',  inputSelector: '.popup__input',  submitButtonSelector: '.popup__submit-button',   inactiveButtonClass: 'popup__button-disabled',   inputErrorClass: 'popup__input_error',  spanErrorClass: 'popup__error_visible', });  function displayInputError (formElement, inputElement, errorMessage, {inputErrorClass, spanErrorClass}) {  const errorElement = formElement.querySelector(`.${inputElement.id}-error`);  inputElement.classList.add(inputErrorClass);  errorElement.textContent = errorMessage;  errorElement.classList.add(spanErrorClass );  };   function hideInputError (formElement, inputElement, {inputErrorClass, spanErrorClass}) {  const errorElement = formElement.querySelector(`.${inputElement.id}-error`);  inputElement.classList.remove(inputErrorClass);  errorElement.classList.remove(spanErrorClass);  errorElement.textContent = ' '; };  function isValid (formElement, inputElement, rest) {  if (!inputElement.validity.valid amp;amp; (!inputElement.validity.valueMissing || validateEmpty)) {  displayInputError (formElement, inputElement, inputElement.validationMessage, rest);  } else {  hideInputError (formElement, inputElement, rest);  } };   function setEventListeners (formElement, selectors) {  const inputList = Array.from(formElement.querySelectorAll(selectors.inputSelector));  inputList.forEach((inputElement) =gt; {  inputElement.addEventListener('input', function () {  isValid(formElement, inputElement, selectors);  updateSubmitStatus(formElement, selectors);  });  }); };   function enableValidation ({formSelector, ...rest}) {  const formList = Array.from(document.querySelectorAll(formSelector));  formList.forEach((formElement) =gt; {  formElement.addEventListener('submit', (evt) =gt; {  evt.preventDefault();  });  setEventListeners(formElement, rest);  }); };   function hasInvalidInput (inputList) {  return inputList.some((inputElement) =gt; {  return !inputElement.validity.valid;  }); };   function updateSubmitStatus (formElement, {inputSelector, submitButtonSelector, inactiveButtonClass}) {  const inputList = Array.from(formElement.querySelectorAll(inputSelector));  const buttonElement = formElement.querySelector(submitButtonSelector);  if (hasInvalidInput(inputList)) {  buttonElement.disabled = true;  buttonElement.classList.add(inactiveButtonClass);  } else {  buttonElement.disabled = false;  buttonElement.classList.remove(inactiveButtonClass);  } };  

У меня есть предчувствие, что мне нужно записать часть кода hideInputError в свою функцию, которая либо открывает, либо закрывает всплывающие окна, чтобы очистить сообщения об ошибках, но ничего из того, что я пробовал до сих пор, не сработало.

 const openPopup = function (popup) {  popup.classList.add('popup_opened');  document.addEventListener('keydown', closeOnEscape); //Close popups through 'Escape' key };  //Close Popup const closePopup = function (popup) {  popup.classList.remove('popup_opened'); };  

Но когда я попытался запустить функции isValid() или hideInputError() внутри функций openPopup или closePopup, сообщения об ошибках остались. (Поле ввода и интервал, который я использовал для отображения сообщения об ошибке, сохраняют класс, который я использую для отображения сообщения об ошибке после повторного открытия всплывающего окна [и неудачной отправки]).

Примечание: это чистая валидация переднего плана. Ничего не отправляется на сервер. Проверка выполняется с помощью HTML и JS.