Установите или отключите флажок, заменив имя класса - PullRequest
2 голосов
/ 28 августа 2010

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

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

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

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

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

helpплз!Спасибо

Ответы [ 2 ]

1 голос
/ 28 августа 2010

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

Смотрите здесь: 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 голосов
/ 28 августа 2010

Сделали ли вы

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

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

...