Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Получить значение checkbox, установить те, которые не установлены (https://javascript.ru/forum/dom-window/77122-poluchit-znachenie-checkbox-ustanovit-te-kotorye-ne-ustanovleny.html)

lavelina 27.03.2019 08:59

Получить значение checkbox, установить те, которые не установлены
 
Добрый день!
Помогите, пожалуйста, реализовать следующую процедуру для скрипта Tampermonkey
1. На странице есть список checkbox, некоторые из них установлены. Нужно определить, какие из checkbox установлены, их не трогать.
2. Те, которые не установлены, установить.
id checkbox генерируются системой автоматически.

Checkbox не установлен
<label class="switch-label">
<input class="switch-input check-switch" id="gen1" type="checkbox">
<div class="switch-drag">
</div>
</label>


Checkbox установлен
<label class="switch-label">
<input checked="checked" class="switch-input check-switch" id="gen2" type="checkbox">
<div class="switch-drag">
</div>
</label>


Заранее благодарю!

Nexus 27.03.2019 09:26

document.querySelectorAll('input[type="checkbox"].switch-input').forEach(input=>{
    input.checked=true;
    input.dispatchEvent(new Event('change',{bubbles:true}));
});

lavelina 27.03.2019 13:14

Не работает :(

Nexus 27.03.2019 13:25

lavelina, изменил код в сообщении №2, попробуйте.

lavelina 27.03.2019 14:06

Nexus,
подправила switch-input на switch-input check-switch, ставлю alert, 11 есть, 22 - нет :( Получается, что дальше не выполняется?
alert ( '11' );
document.querySelectorAll('input[type="checkbox"].switch-input check-switch').forEach(input=>{
    alert ( '22' );
    input.checked=true;
    input.dispatchEvent(new Event('change',{bubbles:true}));
});

Nexus 27.03.2019 14:07

Цитата:

Сообщение от lavelina
подправила switch-input на switch-input check-switch

зачем?
У вас селектор не правильный.
https://learn.javascript.ru/css-selectors

lavelina 27.03.2019 14:43

Nexus, извините, думала вы ошиблись! Код работает! :dance:


Часовой пояс GMT +3, время: 20:12.