Я думаю, что здесь есть более фундаментальная проблема, поскольку этот код никогда не будет выполняться так, как вы ожидаете.Это событие события радио onClick, означающее, что оно всегда будет иметь состояние (Да / Нет).
Вам нужно будет сделать это в двух утверждениях, что-то вроде этого, может быть?
$("input[name^='attendance']").click(function() {
var id = this.name.replace('attendance', '');
$("#colour" + id + ", #shade" + id).prop("disabled", this.value == 'No');
...
});
$("#colour" + id + ", #shade" + id).prop("disabled", !$(input[name^='attendance').val());