@artmeister

Как убрать/спрятать блок при определённом селекте в iframe?

Доброго времени суток.

Есть iframe-форма с селектом товаров. Необходимо, чтобы при раскрытии формы и выборе определённых товаров, пропадал блок с чекбоксом, а на остальных оставался виден.

Пробовал так:

document.addEventListener("DOMContentLoaded", () => {
const accessories = [
    'Товар 1',
    'Товар 2',
    'Товар 3'
];

const tip_oborud = document.getElementById('tip_oborud');
const afertaBlock = document.getElementsByClassName('rsform-block-aferta')[0];

tip_oborud.addEventListener('change', function (e) {
    accessories.forEach((el) => {
        if (e.target.value === el) {
            afertaBlock.style = "display: none;";
        } else {
            afertaBlock.style = "display: block;";
        }
    });
});
})

но без успешно...
Почему-то срабатывает только при клике на последний пункт. Прошу помощи у мудрейших)
  • Вопрос задан
  • 33 просмотра
Решения вопроса 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
Так Вы же в цикле проходитесь по массиву. Зачем? Или я чего-то не понял..
Вместо этого проверяйте наличие e.target.value в массиве accessories, если есть, то скрывайте, иначе показывайте.
tip_oborud.addEventListener('change', function (e) {
  afertaBlock.style.display = accessories.includes(e.target.value) ? 'none' : 'block'
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
XPOWER Одесса
от 3 000 до 5 500 $