jQuery кнопки radio

T
На сайте с 11.10.2009
Offline
20
2316

Доброго времени суток уважаемые форумчане, помогите с решением вознишней проблемы.

1) Подскажите пожалуйста как в jQuery цикл for работает, что бы перебирать:

  

$('label[for=whom-1]').removeClass('active');
$('label[for=whom-2]').removeClass('active');
$('label[for=whom-3]').removeClass('active');
$('label[for=whom-4]').removeClass('active');
$('label[for=whom-5]').removeClass('active');

2) После того как кнопка радио установлена, как ее можно снять? Что бы во всем списке небыло выделено ни одного значения.

	<script type="text/javascript">

$(function(){
$('#for label').click(function() {
$('label[for=whom-1]').removeClass('active');
$('label[for=whom-2]').removeClass('active');
$('label[for=whom-3]').removeClass('active');
$('label[for=whom-4]').removeClass('active');
$('label[for=whom-5]').removeClass('active');
$(this).addClass('active');
});
});
</script>
<ul id="for">
<li><input name="whom" type="radio" value="1" id="whom-1" /> <label for="whom-1">ДЛЯ ВСЕХ</label></li>
<li><input name="whom" type="radio" value="2" id="whom-2" /> <label for="whom-2">МУЖЧИНАМ</label></li>
<li><input name="whom" type="radio" value="3" id="whom-3" /> <label for="whom-3">ДЕВУШКАМ</label></li>
<li><input name="whom" type="radio" value="4" id="whom-4" /> <label for="whom-4">ДЛЯ ДЕТЕЙ</label></li>
</ul>

Буду очень презнателен за помощь!!!

K
На сайте с 24.10.2007
Offline
28
#1

Думаю должно помочь:


<script type="text/javascript">
$(function(){
$('#for label').click(function() {
//убираем активный класс во всех label списка
$('#for label').removeClass('active');
$(this).addClass('active');
//предотвращаем выделение радио-кнопок
return false;
});
});
</script>
Самый полный справочник предприятий Харькова (http://www.infohr.com.ua/)
T
На сайте с 11.10.2009
Offline
20
#2

Классы снимаются теперь отлично, спасибо огромное!

А вот по поводу кнопки, мне хочется имено убирать с уже включеной кнопки.

Допустим, человек кликнул на радио кноку, аджакс ему что то подгрузил, кликнул на другу ему опять что то подгрузилось, а что бы вернуться в исходное положение, на сервер нужно послать пустую переменую, но так что бы человеку было удобно, тобишь он опять кликает на надпись к которой через <label for="whom-номер">текст</label> подключена кнопка кадио, и кнопка деативируется...

Вот так можно снять все радио, но я не знаю как снять у определеной Активной кнопки

$(this).removeAttr("checked");

Помогите пожалуйста.

K
На сайте с 24.10.2007
Offline
28
#3

А как такой вариант:

подхватываем атрибут for от label

и проверяем активен ли соответствующий input


<script type="text/javascript">
$(function(){
$('#for label').click(function() {
//убираем активный класс во всех label списка
$('#for label').removeClass('active');
$(this).addClass('active');
//предотвращаем выделение радио-кнопок
var currentId = $(this).attr('for');
if ($('#'+currentId).attr('checked') == true)
{
$('#'+currentId).removeAttr("checked");
return false;
}
});
});
</script>
T
На сайте с 11.10.2009
Offline
20
#4

Уже очень близко, единственое, скрипт останавливается и не данные на сервер.

А возможно как то без остановки? "return false;"

K
На сайте с 24.10.2007
Offline
28
#5
tishenkoav:
Уже очень близко, единственое, скрипт останавливается и не данные на сервер.
А возможно как то без остановки? "return false;"

пока ничего на ум не приходит, кроме как поставить отправку данных перед return, в том же обработчике клика.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий