2013-05-28 5 views
0

Я пытаюсь переключить выбор радиокнопки, включенный в таблицу ячеек.Переключение переключателя работает только один раз (обновление)?

Переключатель работает только один раз для переключателя.

После этого все переключатели отключены, но мой HTML-код кажется правильным; атрибут checked="checked" присутствует.

Почему это не работает?

Вот это JQuery Я использую:

$('td').click(function(){ 
    var $elem = $(this).children('input');    
    var name = $elem.attr('name'); 
    $('input[name='+name+']').each(function(){ 
     $(this).removeAttr('checked');     
    }).promise().done(function(){     
     $elem.attr('checked','checked');    
    }); 
}); 

И изображение:

enter image description here

ответ

5

Вам нужно использовать prop() в настоящее время вы на самом деле удаления атрибута с помощью removeAttr() вместо просто отключив его.

Ниже будет работать:

$('input[name='+name+']').each(function(){ 
    $(this).prop('checked', false);     
}).promise().done(function(){     
    $elem.prop('checked', true);    
}); 
+0

'prop' сделать трюк, но я не понимаю, почему' attr' не refrech интерфейс ?? !! – sdespont

+0

Я не думаю, что причина 'removeAttr' является причиной. Фактически, '$ (this) .attr ('checked', false);' тоже не работает. Мне нужно использовать 'prop'. Спасибо за быструю помощь. – sdespont

+1

@sdespont Я не думаю, что 'attr ('checked', false)' существует, способ установить флажок с использованием attr - использовать 'removeAttr', поэтому проблема removeAttr я верю :) – lifetimes

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