// Для одного чекбокса
const checkbox = document.querySelector('#checkboxId');
checkbox.checked = true;
checkbox.dispatchEvent(new Event('change'));
// Для нескольких чекбоксов
const checkboxes = document.querySelectorAll('input[type="checkbox"]');
checkboxes.forEach(checkbox => {
checkbox.checked = true;
checkbox.dispatchEvent(new Event('change'));
});
В вашем конкретном случае с чекбоксами формы вы можете сделать что-то вроде:
const features = document.querySelectorAll('.map__checkbox');
features.forEach(feature => {
if (/* your condition here */) {
feature.checked = true;
feature.dispatchEvent(new Event('change'));
}
});
Это одновременно установит отмеченное состояние и запустит обработчик событий изменения, который должен показать/скрыть ваши скрытые div, как и ожидалось. Событие изменения сработает так же, как если бы пользователь нажал на флажок вручную.
Как заставить onchange работать как checked т.е. по умолчанию как бы уже нажато.
В моем случае checked работает но onchange его не признает, и срабатывает только при ручном клике....
Это все делается для того, чтобы обработать форму, которая вываливается после серии нажатых чекбоксов. Те чекбоксы активируют скрытые дивы с помощью onchange. И вот, чтобы при перезагрузке все это дело оставалось активным хочу через ИФ-ы назначить checked-ы... Но тут появилась проблема которая описана сверху
написать дополнительный javascript аки "чат без перезагрузки" считаю неоправданным усложнением...