С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 16.09.2012
Сообщений: 16

Активация кнопки при отмеченных CheckBox

11.01.2015, 22:26. Показов 3562. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята здравствуйте! Помогите разобраться , не могу понять почему происходит следующее:

Описание: Есть div c (неактивным ) классом, также есть несколько checkbox`ов ( их может быть от 1-го и.т.д. )


Задача: При отмеченном или отмеченных checkbox`ах класс у div`а меняется на активный, к которому и привязываем обработчик(click) на дальнейшее действие. При отмененных checkbox`ах класс у div`а меняется с активного на не активный, следовательно при клике по диву обработчик не срабатывает, так как класс уже не активный.

Вообщем что сделанно:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$(function(){
 
$('input[type=checkbox]').change(function(){
        var check = $(':checked').map(function(i, el){
        if( $(el).prop('checked') ) { return $(el).val(); }
        }).get();
        console.log(check);
        if( check.length > 0 ){
        $('#box').removeClass('NOactive').addClass('active');
        
            $('.active').click(function(){
                    $.ajax({
                    type:'POST',
                    url:'delete.php',
                    data:{type:'Delete',check:check},
                    cache:false,
                        success:function(data){
                        ShowMessage();
                        }
                    });             
            })
 
        }else{
        $('#box').removeClass('active').addClass('NOactive');
        }
        });
 
 
});
HTML5
1
2
3
4
5
6
7
8
9
<div id="box">
     <div class="NOactive"></div>
</div>
 
<input type="checkbox" value="100" />text-100
<input type="checkbox" value="2" />text-2
<input type="checkbox" value="6" />text-6
<input type="checkbox" value="4" />text-4
<input type="checkbox" value="7" />text-7
Проблема в том что после загрузке страницы, если кликнуть по диву пока у него класс NOactive . ничего не происходит, но это и правильно так и надо. Затем при отметке одного или нескольких чекбоксов, класс дива меняется на active и при клике по диву происходит обработка запроса и удаляются отмеченные чеки, но если отменить чеки, затем снять их и кликнуть по диву с классом NOactive, то тоже происходит удаление чеков, хотя после снятия чеков, класс у дива меняется на NOactive и вызова обработчика произойти не должно.
Подскажите пожалуйста, где у меня ошибка ?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.01.2015, 22:26
Ответы с готовыми решениями:

Выбор отмеченных CheckBox-ов
есть форма состоящая из чекбокосов &lt;input type=&quot;checkbox&quot; name=&quot;option&quot; points=&quot;0&quot; price_prefix=&quot;+&quot; price=&quot;7300.00000&quot;...

Активация checkbox при клике на поле
Здравствуйте. Как сделать так чтобы если пользователь кликнет на input с именем pole1 и pole2 активировался бы checkbox? ...

Активация кнопки при установке чекбокса
Ситуация немного поменялась. Теперь галочку надо ставить в модальном окне после прочтения договора. в файле стилей код ...

8
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
11.01.2015, 23:35
Лучший ответ Сообщение было отмечено Samuilius как решение

Решение

Цитата Сообщение от Samuilius Посмотреть сообщение
Подскажите пожалуйста, где у меня ошибка ?
Самая главная - установка обработчика внутри другого. Я не очень понял по поводу классов. Вроде бы класс "NOactive" у элемента <div>, который внутри элемента с id = "box", но переключаете классы, вы именно у родительского элемента.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$(function () {
    var but = $('#box > div');
    $(':checkbox').on('change', function () {
        but[$(':checkbox:checked').length ? 'addClass' : 'removeClass']('active');
    });
    but.on('click', function () {
        if (!$(this).hasClass('active')) return false;
        var check = $(':checkbox:checked').map(function (i, el) {
            return $(el).val();
        }).get();
        $.ajax({
            type: 'POST',
            url: 'delete.php',
            data: {
                type: 'Delete',
                check: check
            },
            cache: false,
            success: ShowMessage
        });
    });
});
Добавлено через 34 минуты
P.S. Для наглядности, вот вам примерчик в песочнице.
1
0 / 0 / 0
Регистрация: 16.09.2012
Сообщений: 16
11.01.2015, 23:48  [ТС]
Цитата Сообщение от Lazy_Den Посмотреть сообщение
Я не очень понял по поводу классов. Вроде бы класс "NOactive" у элемента <div>, который внутри элемента с id = "box", но переключаете классы, вы именно у родительского
Да я действительно неправильно истолковал по поводу классов. На самом деле у меня несколько дивов выполняющих действия. Тоесть у меня вот так

HTML5
1
2
3
4
<div id="toolBut">
   <div  class="but1-active">but1</div>
   <div id="box"  class="NOactive">but2</div>
</div>
За предоставленный код огромное спасибо. Сейчас попробую
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
11.01.2015, 23:54
Цитата Сообщение от Samuilius Посмотреть сообщение
Тоесть у меня вот так
Значит в моём коде, вам нужно изменить только селектор кнопки:
JavaScript
1
var but = $('#box');
Смотрим результат
1
0 / 0 / 0
Регистрация: 16.09.2012
Сообщений: 16
12.01.2015, 01:19  [ТС]
Цитата Сообщение от Lazy_Den Посмотреть сообщение
вам нужно изменить только селектор кнопки:
Все классно получилось, спасибо огромное.
P.S. Если возникнут вопросы, я знаю кто профи
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
12.01.2015, 01:25
Цитата Сообщение от Samuilius Посмотреть сообщение
Если возникнут вопросы, я знаю кто профи
Я тоже Например, Брендан Айк или Джон Резиг.
2
0 / 0 / 0
Регистрация: 16.09.2012
Сообщений: 16
12.01.2015, 18:21  [ТС]
Цитата Сообщение от Lazy_Den Посмотреть сообщение
Например, Брендан Айк или Джон Резиг.
пОнято. Спасибо

Добавлено через 7 часов 42 минуты
Цитата Сообщение от Samuilius Посмотреть сообщение
Lazy_Den
У меня к Вам вопрос. Вы хороiо разбираетесь в PHP ?
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
12.01.2015, 21:53
Цитата Сообщение от Samuilius Посмотреть сообщение
Вы хороiо разбираетесь в PHP ?
Кое-что знаю. Но вопросы по PHP в другом разделе.
0
0 / 0 / 0
Регистрация: 16.09.2012
Сообщений: 16
14.01.2015, 12:21  [ТС]
Цитата Сообщение от Lazy_Den Посмотреть сообщение
Кое-что знаю. Но вопросы по PHP в другом разделе
Да конечно я знаю что в другом разделе, я так , по горячим следам, что бы вас не потерять . На днях подготовлю тему. Просто не могу понять как реализовать кое что.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.01.2015, 12:21
Помогаю со студенческими работами здесь

Активация кнопки при попытке редактирования формы
Прошу помочь, сам новичок в языке java script, буду благодарен за помощь:) есть форма, на ней 4 элемента textarea и один элемент select и...

Активация кнопки после checkbox
Ребята,не могу разобраться,помогите,пожалуйста!Требуется реализовать активацию кнопки после установки флажка на checkbox без применения...

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

Активация checkbox при выполнении условия
Есть 2 checkbox'а на 1 форме. На 2 форме выполняется условие при котором k принимает 2 значения. Если к примет 1 значения то появляется...

Активация comboBox/lineEdit при выборе checkBox
Добрый день. В Qt совсем новичок, поэтому и вопрос немного простенький. Пишу программу на Qt и возник вопрос: как реализовать активацию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru