2010-08-28 3 views
2

У меня есть набор из 5 флажков с классом, установленным в «child». Я хочу, чтобы, если я выберу один флажок, остальные из них будут отключены. Я пробовал следующий код, но он отключает все флажки.Включить флажок отключить/включить, заменив имя класса

if (!$(this).is (":checked")) { 
    $(this).removeClass().addClass("hand .parent"); 
    $(".child").attr ("disabled" , true); 
} 

тогда даже я попытался добавить этот

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

, но он все еще отключает все элементы управления

помощь плз! Благодаря

+1

Это звучит для меня как если вы хотите переключатели, а не флажки. – Dori

+0

Нет, я хочу использовать флажки. ура –

ответ

1

Вы пытаетесь сделать что-то подобное?

Посмотри здесь:http://jsfiddle.net/fEA3Y/

var $cbox = $('.child').change(function() { 
    if(this.checked) { 
     $cbox.not(this).attr('disabled','disabled'); 
    } else { 
     $cbox.removeAttr('disabled'); 
    } 
});​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

Если вам действительно нужно переключать классы по какой-то причине, вы можете сделать это:

http://jsfiddle.net/fEA3Y/2/

var $cbox = $('.child').change(function() { 
    if(this.checked) { 
     $(this).toggleClass('child parent'); 
     $cbox.not(this).attr('disabled','disabled'); 
    } else { 
     $(this).toggleClass('child parent'); 
     $cbox.removeAttr('disabled'); 
    } 
});​ 
+0

+1. Не знал, что вы можете назначить такую ​​переменную и использовать ее в событии. –

+0

Да, поскольку в обработчике необходим соответствующий набор элементов, возвращаемых в объект jQuery, это быстрый способ кэшировать набор, а не повторно извлекать его каждый раз. Это будет то же самое, что и делать 'var $ cbox = $ ('. Child');' в одной строке, а затем '$ cbox.change (func ...' на следующем и ссылаться на тот же набор внутри. – user113716

+0

Отлично! Миллионы благодарностей !! Это то, что я искал. –

0

ли вы

$('.child').removeAttr('disabled') 

Поскольку вы пробовали его на .child, это своего рода трудно сказать контекст this, так как вы не сможете разместить полный код.

Кроме того, вы там, где нет атрибута readonly?

Смежные вопросы