В валидации форм в функции 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);
}