Мне надо сделать группу чекбоксов с главным чекбоксом.
1. Т.е. если выбрали главный чекбокс - автоматически выбрались все остальные чекбоксы (или снялись соответственно)
2. если были выбраны все чекбоксы и сняли один из них (не главный) то главный чекбокс должен автоматически сняться и наоборот если юзер сам выбрал все чекбоксы (кроме главного) то главный должен автоматически выбраться.
Есть ли такая штука в boostrap-е или еще в какой-то библиотеке в готовом виде? Если нет, то как это реализовать на jquery? Я смог сделать на jquery только первый пункт, а вот второй пока не выходит...
По второму пункту:
Можно повесить (что я и сделал) на общего родителя обработчик onclick, а там задавать checked если все чекбоксы проставленны (можно сделать с помощью es5 - Array.every)
В общем то нашел уже решение. Кстати метод every ни один испробованный мной браузер не признает. :( Я его тоже пробовал. А готовых решений нет? Вроде проблема то настолько тривиальная что кажется это на любом сайте есть. Просто список пунктов и сверху галочка выбирающая все пункты.
Для начала: caniuse.com/#search=every - что ж вы за браузеры такие смотрели :)
Что-то мне подсказывает что вы писали $('selector').every - в jQuery действительно такого метода нет. А вот в обычных js массивах - очень давно.
Можете еще раз проверить в консоли: console.log(typeof [].every)? Заметьте: чтобы преобразовать jquery-выборку в массив - используйте метод toArray: $('a').toArray().every;
Как по мне - проблема настолько тривиальна, что свое решение будет проще, чем портировать готовое. Но если это готовое - идеально вписывается в ваш кейс - почему нет.
Вот например markgx.github.io/jquery-check-all jquery плагин. Если у вас используется react/angular и прочие - ищите специфичный для них компонент.