169 похожих чатов

Всем привет, подскажите пожалуйста, вроде простая задачка, но уже второй

день сижу...

На странице 5 чекбоксов, по умолчанию они все checked="checked", при клике на любой из чекбоксов, нужно снять checked у всех пяти.

Могу найти в цикле текущей чекбокс, но как найти все остальные?

for (let i = 0; i < mainCheckbox.length; i++) {
mainCheckbox[i].onclick = function () {
mainCheckbox[i].checked = this.checked;
}
}

26 ответов

48 просмотров

Тебе нужно сначала пойти по всем и убрать ччекед а потом конкретному добавить :)

Игорь- Автор вопроса
Андрей
Тебе нужно сначала пойти по всем и убрать ччекед а...

Привет! Все чекеды должны быть всегда в одинаковых состояниях, по умолчанию они checked="checked", кликая на любой их них, все становятся not:checked и наоборот

Игорь
Привет! Все чекеды должны быть всегда в одинаковых...

то есть, один чекбокс как бы управляет всеми остальными?

Игорь- Автор вопроса
Andrew
то есть, один чекбокс как бы управляет всеми остал...

да, именно так, понимаю, что бредово, но так надо сделать

Игорь
да, именно так, понимаю, что бредово, но так надо ...

делегируй клик на контейнер, после проверка e.target.type==='checkbox', внутри берешь значение e.target.checked и через квериселекторАлл и форич ставишь checked в значение из события

Игорь
Привет! Все чекеды должны быть всегда в одинаковых...

Ну так еще проще, перебираешь все чекеды и убираешь добавляешь состояние

Андрей
Ну так еще проще, перебираешь все чекеды и убираеш...

Неверное добавлю немного инфы, добавь класс на каждый с них, и перебирай массив чекбоксов

Андрей
Неверное добавлю немного инфы, добавь класс на каж...

Скинь кодепен не понятно в чем проблема:)

Игорь
Привет! Все чекеды должны быть всегда в одинаковых...

Если в реакте делать, то вот так это будет работать: const example = () => { const [isChecked, setIsChecked] = useState(true) ; const handleChange = () => setIsChecked(!isChecked) ; return <> <checkbox ischecked={isChecked} onChange={handleChange} /> И так 5 чекбоксов <\> }

Александр Крючков
Можешь объяснить почему?)

Стейт нужно менять иммутабельно, чтобы у реакта было что сравнить и правильно перерендерится

Denis Utkin
Стейт нужно менять иммутабельно, чтобы у реакта бы...

Как я написал тоже правильно перерендерится 🤷‍♂

Документацию ведь не дурак придумал. Во избежание ошибок, которые у тебя появятся вообще в другом уголке проекта, но которые появятся именно из-за такого сета, оно того не стоит

Александр Крючков
Как я написал тоже правильно перерендерится 🤷‍♂

В этом случае правильно, в более сложных не правильно, будешь экспериментировать?

Aleksey Kulikov
Документацию ведь не дурак придумал. Во избежание ...

Парни, вы мне на документацию жалость не давите, пожалуйста. У меня в проектах спокойно работают варианты как я написал выше. Был бы благодарен если бы объяснили в какой момент при моëм написании может появиться ошибка или не надо поправлять если не владеете предметом 🤗

Александр Крючков
Парни, вы мне на документацию жалость не давите, п...

Ты понимаешь, что конкретных ситуаций никто не знает, так как твоя реализация вызывает так званное "непредвиденное поведение", именно поэтому никто тебе реальных примеров не даст

Александр Крючков
Парни, вы мне на документацию жалость не давите, п...

Тк хендлер не заколбечен может быть ошибка при его передаче дочерним компонентам

Aleksey Kulikov
Ты понимаешь, что конкретных ситуаций никто не зна...

Изменение стейта напрямую вызывает непредвиденное поведение, а не мой вариант.

Иван Музыка
screenshot

машинный перевод: Однако после одного клика age будет только 43, а не 45! Это связано с тем, что вызов функции set не обновляет переменную состояния age в уже запущенном коде. Таким образом, каждый вызов setAge(age + 1) становится setAge(43). Чтобы решить эту проблему, вы можете передать функцию обновления в setAge вместо следующего состояния:

Иван Музыка
screenshot

Ну, правильно. У меня только один set.. , который просто переключает состояние. Короче, парни. Всë что вы пишете - правильно, молодцы. Но и в моëм варианте ошибки нет. В данном примере. И в другой компонент можно передать, без useCallback иди с ним отработает как нужно. Да в более сложных ситуациях соглашусь, иногда требуется писать prev => ...

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта