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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поведение checkboxes как radio, Группы чекбоксов 
V
    Опции темы
Guedda
Дата 20.10.2011, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

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



Добрый день.
Даже не представляю, как правильно описать проблему. Но постараюсь.
Есть приблизительно такой код:
Код

<input type="checkbox" name="group1" value="first_element" />First element
<input type="checkbox" name="group1" value="second_element" />Second element
<input type="checkbox" name="group1" value="third_element" />Third element
<input type="checkbox" name="group2" value="first_element" />First element
<input type="checkbox" name="group2" value="second_element" />Second element
<input type="checkbox" name="group2" value="third_element" />Third element

Если бы это были type="radio", то в одной группе могла нажиматься только одна radio. Так вот мне необходимо реализовать такое же, только с чекбоксами (смысл в том, что в одной группе (чекбоксы с одним name) мог нажиматься только один чекбокс, а остальные удаляли свой checked). Это надо для того, чтобы пользователь мог удалить свои значения (так как эти чекбоксы не обязательны). 
И я понимаю, что это надо реализовывать с помощью js, jQuery. А вот куда копать, даже не знаю. 
Надеюсь, я вполне объяснил проблему. Буду рад любой помощи.

Заранее огромная благодарность. 


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
kovalenko123
Дата 20.10.2011, 14:48 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Привет 

Код

вот на чистом JS
for (i = 0; i < document.myform.group1.length; i++)
    document.myform.group1[i].checked = false ;

вот на jquery
$("input:checkbox").removeAttr("checked");


оберни в функцию и повешай на change


PM MAIL ICQ   Вверх
Guedda
Дата 20.10.2011, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

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



kovalenko123, видимо, Вы немного не поняли. В Вашем примере будут удаляться все checkedы у чекбоксов, а надо так (реальный пример):
- нажимаем на первый чекбокс первой группы он чеккед
- нажимаем на второй чекбокс первой группы. первый чекбокс чеккед удаляется, а второй ставится чеккед
- нажимаем на второй чекбокс первой группы. все чекбоксы первой группы !чеккед
и так далее.

Добавлено через 5 минут и 11 секунд
Код

jQuery('body :input').live('change', function(){
    jQuery('[name=group1]').each (function() {
            jQuery(this).removeAttr('checked');
            // Что сюда написать? Как отследить, какой именно чекбокс нажат?
        })

})


Добавлено через 9 минут и 58 секунд
Сделал так:
Код

jQuery('body :input').live('change', function() {
var chkbx;
        if (jQuery(this).is(':checked')) {
            chkbx = jQuery(this);
        }
        jQuery('[name=group1]').each (function() {
            jQuery(this).removeAttr('checked');
            if (chkbx) {
                chkbx.attr('checked', 'checked');
            }
        })
})

Может есть варианты поизящнее?


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
нуп
Дата 20.10.2011, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

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



Как то так
Код

$('input[type=checkbox]').change(function() {
        $('input[type=checkbox][name=' + $(this).attr('name') + ']').not($(this)).attr('checked', false);
    }); 

PM MAIL   Вверх
magelan
Дата 20.10.2011, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


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

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



Есть старый добрый вариант, вешается радиогруппа в которой есть 4й вариант "ничего из перечисленного".  Дешево, сердито, главное железнобетонно работает даже на текстовых браузерах. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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