В валидации форм в функции disableSubmitButton и enableSubmitButton избавиться от глобальной области видимости

function toggleButtonState(config, inputList, buttonElement) { 
  if (hasInvalidInput(inputList)) { 
    disableSubmitButton(buttonElement, config); 

! Тут используется config из глобальной области видимости, а не из аргумента функции, что тут недопустимо. Из-за этого не получится данную функцию переиспользовать с другим объектом селекторов.

} else { 
    enableSubmitButton(buttonElement, config); 
  } 
} 

function disableSubmitButton(button) { 
  button.classList.add(config.disabledButtonClass);

! Тут используется config из глобальной области видимости, а не из аргумента функции, что тут недопустимо. Из-за этого не получится данную функцию переиспользовать с другим объектом селекторов.

button.setAttribute('disabled', true); 
} 
   

function enableSubmitButton(button) { 
  button.classList.remove(config.disabledButtonClass); 
  button.removeAttribute('disabled'); 
} 

function formPlaceSubmitHandler(evt) { 
    const placeInputLink = document.querySelector('#elements__image').value; 
    const placeInputName = document.querySelector('#elements__name').value; 
    // Действие предотвращающeе обновление страницы 
    evt.preventDefault(); 
    addCard(placeInputLink, placeInputName); 
    formPhoto.reset(); 
    **disableSubmitButton(photoAddSubmit);**

! Нужно передавать вторым параметром объект с селекторами.

const config = {
    formSelector: ".form",
    inputSelector: ".form__item",
    submitButtonSelector: ".form__button",
    disabledButtonClass: "form__button_disabled",
    inputErrorClass: "popup__input_invalid",
}

Все комментарии с "!" знаком нужно исправить. Не могу разобраться как?

Попробовала поправить таким образом:

function toggleButtonState(config, inputList, buttonElement) {
  if (hasInvalidInput(inputList)) {
    disableSubmitButton(buttonElement, config);
  } else {
    enableSubmitButton(buttonElement, config);
  }
}

function disableSubmitButton(buttonElement, config) {
  buttonElement.classList.add(config.disabledButtonClass);
  buttonElement.setAttribute('disabled', true);
}

function enableSubmitButton(buttonElement, config) {
  buttonElement.classList.remove(config.disabledButtonClass);
  buttonElement.removeAttribute('disabled');
}

function formPlaceSubmitHandler(evt) {
    const placeInputLink = document.querySelector('#elements__image').value;
    const placeInputName = document.querySelector('#elements__name').value;
    const button = document.querySelector(config.submitButtonSelector);
    // Действие предотвращающeе обновление страницы
    evt.preventDefault();
    addCard(placeInputLink, placeInputName);
    formPhoto.reset();
    disableSubmitButton(photoAddSubmit, button);
    closePopup(popupPhoto);
}

Ответы (0 шт):