Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
56 / 56 / 14
Регистрация: 02.03.2010
Сообщений: 407
1

Checkbox, выбор и отмена

17.09.2013, 22:10. Показов 3560. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
И снова "здрасте". Суть проблемы:
Имеется много комментариев выводимых на страницу со структурой:
PHP
1
2
3
4
5
6
7
8
    return '        
            <div class="comment" d="'.$count.'">                
                <div class="name">'.$d['author'].'#'.$count.'</div>
                 <span class="del_text"> Удалить: </span> <input d="'.$count.'" type="checkbox" name="$ar_com['.$count.']" value='.$id_com.'>
                <div class="date" title="Добавлено '.date('d.m.Y \в H:i',$d['date']).'">'.date('d.m.Y',$d['date']).'</div>
                <p>'.$d['text'].'</p>
            </div>
        ';
И имеется скрипт JQ:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
$('.comment').click(function(){  
             if($("#count3").prop("checked")) { 
             i=$(this).attr('d');
                 if($('input[d='+i+']').prop("checked")) {
                     $('input[d='+i+']').attr('checked', false);
                     $('.comment[d='+i+'] .del_text').attr('style','color:#888888');
                 }
                 else {              
                     $('input[d='+i+']').attr('checked', true);
                     $('.comment[d='+i+'] .del_text').attr('style','color:red');         
                     };
             };
        });
Скрипт делает следующее:
отслеживает событие клика на комментарии, затем проверяет выбран ли чек бокс "ручной отметки" комментариев, если да, то присваивает переменной i значение атрибута d (просто метка для частичной выборки). Далее соответственно проверяется выбран ли чекбокс у конкретного комментария с атр "d" (у каждого коммента он уникальный) и соответственно если выбран то снимает выбор, если не выбран то ставит выбор ну и перекрашивает в красный если выбрано, или в дефолтный если нет.

Проблема в чем значит: первый раз жмем ставит "чек" и красит, второй раз - снимает, третий раз только красит и все, дальше он реагирует на нажатия. почему?

Кстати маленько извращенная выборка, очень много меток наставил Потом подправлю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2013, 22:10
Ответы с готовыми решениями:

Выбор checkbox
Добрый день, столкнулся с проблемой выбора checkbox. Есть группа боксов: &lt;input type=&quot;checkbox&quot;...

Массовый выбор CheckBox
Здравствуйте. Есть такая проблема. Задача - сделать массовый выбор чекбоксов при нажатии на одном....

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

Выбор значений в Multiple CheckBox
&lt;select id=&quot;delicts0652c2aca-fcf9-44fa-8a05-7583c485187c&quot; class=&quot;multi checkDelicts&quot; name=&quot;delicts&quot;...

8
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
18.09.2013, 10:59 2
Цитата Сообщение от Sunman Посмотреть сообщение
<input d="'.$count.'"
Javascript
1
$("#count3")
может все-таки должен быть аттрибут id, а не просто d?
1
56 / 56 / 14
Регистрация: 02.03.2010
Сообщений: 407
18.09.2013, 13:10  [ТС] 3
Цитата Сообщение от Schtrich Посмотреть сообщение
может все-таки должен быть аттрибут id, а не просто d?
По-моему разницы нет. d - номер сообщения на странице и для всех сообщений уникален.

Цитата Сообщение от Schtrich Посмотреть сообщение
Javascript
1
$("#count3")
Это id чекбокса который служит флагом, показывая можно ли выбирать сообщения просто кликом.
0
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
18.09.2013, 13:46 4
Цитата Сообщение от Sunman Посмотреть сообщение
Это id чекбокса который служит флагом
из того html что вы выложили ни одного такого элемента.
1
56 / 56 / 14
Регистрация: 02.03.2010
Сообщений: 407
18.09.2013, 17:45  [ТС] 5
Цитата Сообщение от Schtrich Посмотреть сообщение
из того html что вы выложили ни одного такого элемента.
HTML5
1
 <input id="count3" type="checkbox" name="count3">
Код такой, но причем тут этот чекбокс?) вроде бы состояние его отметки проверяется корректно.

Добавлено через 2 часа 35 минут
Цитата Сообщение от Sunman Посмотреть сообщение
HTML5
1
 <input id="count3" type="checkbox" name="count3">
Код такой, но причем тут этот чекбокс?) вроде бы состояние его отметки проверяется корректно.
Проблема в том, что чекбокс не принимает второй раз состояние cheked и я не могу понять почему. Даже другой код, который выставляет птички в определенном промежутке не меняет их состояние.
0
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
18.09.2013, 17:47 6
какое условие должно срабатывать чтобы он принял второй раз checked?
1
56 / 56 / 14
Регистрация: 02.03.2010
Сообщений: 407
18.09.2013, 18:00  [ТС] 7
Цитата Сообщение от Schtrich Посмотреть сообщение
какое условие должно срабатывать чтобы он принял второй раз checked?
Отмечен чекбокс с id=count3 и собственно сам чекбокс связанный с комментарием и имеющий для каждого комментария свой атрибут "d" был не отмечен. Выходит первый раз он верно отмечает и снимает тоже верно, а дальше что-то слетает, буд-то все еще висит состояние cheked, но птички нет, да и запрос на удаление говорит, что поле не отмечено было.
0
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
18.09.2013, 18:29 8
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$('.comment').click(function(){
    
    i = $(this).attr("d");
    
    if ( $('#count3').prop('checked') ) {
                
        if ( $('input[d="'+ i + '"]').prop('checked') ) {
         
            $('input[d="' + i + '"]').attr("checked",false);
            
            $('.comment[d='+i+'] .del_text').attr('style','color:#888888');
            
        } 
        
    } else {
            
            $('input[d='+i+']').prop('checked', true);
            
            $('.comment[d='+i+'] .del_text').attr('style','color:red');         
            
        }
    
});
1
56 / 56 / 14
Регистрация: 02.03.2010
Сообщений: 407
18.09.2013, 18:44  [ТС] 9
Цитата Сообщение от Schtrich Посмотреть сообщение
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$('.comment').click(function(){
    
    i = $(this).attr("d");
    
    if ( $('#count3').prop('checked') ) {
                
        if ( $('input[d="'+ i + '"]').prop('checked') ) {
         
            $('input[d="' + i + '"]').attr("checked",false);
            
            $('.comment[d='+i+'] .del_text').attr('style','color:#888888');
            
        } 
        
  }else {
            
            $('input[d='+i+']').prop('checked', true);
            
            $('.comment[d='+i+'] .del_text').attr('style','color:red');         
            
        }
    
});
Работает, только скобку ты не там закрыл Благодарю.
0
18.09.2013, 18:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2013, 18:44
Помогаю со студенческими работами здесь

Отмена возможности нажатия label (CheckBox)
Пытаюсь сделать , чтоб при нажатии чекбокса лейбл не мог менять цвет(он меняет если тапаешь)....

Текстовый редактор, выбор/отмена шрифта
Всем привет, подскажите плз! Что нужно вставить в часть кода после executе? Нужно чтобы после...

выбор CheckBox
Помогите разобраться с CheckBox... В общем есть 4 CheckBox размещенных на GroupBox. Один из них...

выбор в реалтайме (checkbox)
появилась потребность в том, чтобы можно было выбирать несколько значений, и они обрабатывались в...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru