Вы абсолютно правы, свойство disabled превращает блок выбора в черную дыру. Даже обычное браузерное контекстное меню Firefox, вызываемое правой кнопкой мыши, не работает над ним.
Звучит так, как будто вы намерены повторно включить поле выбора при щелчке контейнера ярлыков, так что отключено ли состояние только ради внешнего вида? .. Если так, что если вы сделали поле выбора просто look отключенным с помощью прозрачности CSS?
<style type="text/css">
label.disabled select { opacity: 0.6; filter: alpha(opacity=60); }
</style>
<script type="text/javascript">
$(function() {
$('div.formdiv').bind('click',function() {
$('label.disabled',this).removeClass('disabled');
$('input:radio',this).attr('checked',true);
$('div.formdiv').not(this).find('label').addClass('disabled').find('select').attr('selectedIndex',0);
}).find('label').addClass('disabled');
});
</script>
<div class="formdiv">
<label for="CustomerRadio">
<input id="CustomerRadio" checked="checked" name="usertype" type="radio" value="Customer" />Customer
</label>
</div>
<div class="formdiv">
<label for="BusinessPartnerRadio">
<input id="BusinessPartnerRadio" name="usertype" type="radio" value="BusinessPartner" />Business Partner
</label>
<label>
<select id="businessPartnerType" name="businessPartnerType">
<option selected="selected" value="Builder">Builder</option>
<option value="InstallDealer">Install Dealer</option>
<option value="RepairDealer">Repair Dealer</option>
</select>
</label>
</div>
Тестовая страница здесь:
http://www.carcomplaints.com/test/motowilliams.html
Кажется, работает нормально в FF3, и я думаю, браузеры Chrome тоже. К сожалению, в IE7 (жаль, что у меня не было никеля за каждый раз, когда я это говорил), поле выбора теряет фокус, если щелкнуть по нему напрямую ... что-то внутреннее в IE, что, похоже, связано с изменением фильтра непрозрачности в объекте выбора.
Боковая панель ... не обращая внимания на проблему "отключенного" окна выбора на мгновение: даже если вы используете синтаксис "for = ..." на своих ярлыках, я не думаю, что допустимо иметь несколько элементов формы, содержащихся внутри один тег метки. Если это действительно так, может быть, просто не очень хорошая идея. Сама идея заключается в том, что щелчок в любом месте метки дает фокус связанному элементу формы, поэтому теоретически ваше поле выбора (которое является вторым элементом формы внутри метки) никогда не должно фокусироваться. FF3 справляется с этим правильно - если вы попробуете свой код без отключения поля выбора, вы увидите проблему.
Надеюсь, это поможет. Оверлей div, предложенный первым постером, может быть подходящим вариантом. Я подумал, что просто попробую альтернативное решение с использованием того же HTML-кода, настроенного для решения этой проблемы с несколькими элементами формы на ярлык.