Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> disable checkbox если поставили два флажка 
:(
    Опции темы
implements
Дата 28.6.2013, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 20.7.2010

Репутация: нет
Всего: нет



добрый день, есть пять чекбоксов, как можно сделать неактивными остальные треи, если пользователь поставил два флажка, и соответственно если убрал cheсk то заного сделать активными все 
PM MAIL   Вверх
bars80080
Дата 28.6.2013, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Код

<input type="checkbox" name="s1" value="1" class="chgrp" onclick="collect_ch();" />
<input type="checkbox" name="s2" value="1" class="chgrp" onclick="collect_ch();" />
<input type="checkbox" name="s3" value="1" class="chgrp" onclick="collect_ch();" />
<input type="checkbox" name="s4" value="1" class="chgrp" onclick="collect_ch();" />
<input type="checkbox" name="s5" value="1" class="chgrp" onclick="collect_ch();" />



Код

function collect_ch() {
    var checked = 0;
    $('.chgrp').each(function () {
        if(checked > 1) { $(this).css('disabled', true); }
        if($(this).css('checked')) { checked++; }
    });
}


нужна jquery
код не проверялся
PM MAIL WWW   Вверх
implements
Дата 28.6.2013, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 20.7.2010

Репутация: нет
Всего: нет



bars80080, спасибо, попробую, думаю если что не так подправлю сам!!!
PM MAIL   Вверх
implements
Дата 28.6.2013, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 20.7.2010

Репутация: нет
Всего: нет



bars80080,  так нет не разобрался
что означает 
Код

if($(this).css('checked')) 


и

Код

var checked = 0;

находится в нутри функции, следовательно оно всегда будет обнуляться, при каждом вызове
PM MAIL   Вверх
JAYBE
Дата 28.6.2013, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.3.2008

Репутация: нет
Всего: 0



function collect_ch() {
    var checked = 0;  // обнуление счётчика, который подсчитывает количество отмеченный чекбоксов
    $('.chgrp').each(function () { // проходим по каждому элементу с клссом chgrp
        if(checked > 1) { $(this).css('disabled', true); } // если счётчик больше единицы, то текущий элемент в переборе сделать disable
        if($(this).css('checked')) { checked++; }  // если текущий элемент в переборе отмечен (чекнут), то увеличить счётчик на единицу
    });
}

Поулчается что если повесить на чекборк вызов этой функции, то при чеке все остальные будут задизейблены.

И вообще, мне кажется что так будет "элегантнее":
Код

$("body").on("click", ".chgrp", function() {
    if ( $(".chgrp:checked").length>=2 ) {
        $(".chgrp:not(:checked)").attr("disabled", true);
    } else {
        $(".chgrp:not(:checked)").removeAttr("disabled");
    }
})


Это сообщение отредактировал(а) JAYBE - 28.6.2013, 16:06
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0438 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.