Это должно работать и быть намного эффективнее, чем у DrJokepu:
$(function() {
$('.repeaterDiv>:radio').bind('click',function() {
$('.repeaterDiv>:checkbox').removeAttr('checked');
$(this).siblings(':checkbox').attr('checked','checked');
});
$('.repeaterDiv>:checkbox').bind('click',function() {
$('.repeaterDiv>:checkbox').removeAttr('checked');
$(this).attr('checked','checked').siblings(':radio').attr('checked','checked');
});
});
В качестве примечания, вы должны убедиться, что все переключатели имеют одинаковое имя, чтобы соответствовать стандартам ...
Если есть какая-то странная причина, по которой вы не можете этого сделать, вы можете изменить последнюю строку блока привязки флажка (как бы неприглядно это ни было) на:
$(this)
.attr('checked','checked')
.parent().siblings('.repeaterDiv').find(':radio')
.removeAttr('checked');
// I prefer to break the chain here but...
// you could continue the above chain by doing:
// '.end().end().end().siblings(':radio').attr('checked','checked');'
$(this).siblings(':radio').attr('checked','checked');