I agree with jkraybill and LaceySnr, I think the only way to have/enforce a "selectRadio" is to jimmy rig something out of HTML elements + javascript (jQuery). I recently had the same situation, and I used a wrapper class + <apex:inputCheckbox>
s + jQuery to enforce only checkbox can be checked out of my selection.
Here's my example in case it helps:
It's a VF page where a user chooses an option or declines any choice (in this case it's for Employees to choose a Health Benefit for the 2013-2014 enrollment period).
Wrapper class in my controller:
public class myController{
public class benefitChoice{
public boolean isSelected {get;set;}
public Benefit_Type__c benefitType {get;set;}
public benefitChoice(){} //empty constructor
public benefitChoice(boolean selection,Benefit_Type__c bt){
this.isSelected = selection;
this.benefitType = bt;
}// a fun constructor
public benefitChoice(Benefit_Type__c bt,boolean selection){
this.isSelected = selection;
this.benefitType = bt;
}// another fun constructor
}
public list<benefitChoice> AvailableBenefits {get;set;}
public boolean declineBenefit {get;set;}
// create available benefits + whatever else you need
}//END class
VF Page sample: Note: I displayed the AvailableBenefits in <div>
s rather than a table so jQuery's toggle.('slide')
animates smoothly
<div class="ben-avail" >
<div class="ben-avail-tr">
<div class="ben-avail-td ben-avail-th ben-avail-td-1"></div>
<div class="ben-avail-td ben-avail-th ben-avail-td-2">
Benefit Description
</div>
<div class="ben-avail-td ben-avail-th ben-avail-td-3">
Converage
</div>
<div class="ben-avail-td ben-avail-th ben-avail-td-4">
PR Deduction
</div>
<div class="ben-avail-td ben-avail-th ben-avail-td-5">
Has HSA
</div>
<div class="clear"></div>
</div>
<apex:repeat value="{!AvailableBenefits}" var="b">
<div class="ben-avail-tr">
<div class="ben-avail-td ben-avail-td-1">
<apex:inputCheckbox value="{!b.choice}" styleClass="benefitSelection accept"/>
</div>
<div class="ben-avail-td ben-avail-td-2">
<apex:outputField value="{!b.benType.Name}" styleClass="ben-desc"/>
</div>
<div class="ben-avail-td ben-avail-td-3">
<apex:outputField value="{!b.benType.Coverage__c}" styleClass="ben-coverage"/>
</div>
<div class="ben-avail-td ben-avail-td-4">
<apex:outputField value="{!b.benType.EE_PR_Deduction__c}" styleClass="ben-deduction"/>
</div>
<div class="ben-avail-td ben-avail-td-5">
<apex:outputField value="{!b.benType.Include_HSA__c}"/>
</div>
<div class="clear"></div>
</div>
</apex:repeat>
</div>
<br/>
<!-- Have a different div to display "Decline All Benefits" option [so it can have a red background-color :) ]-->
<div class="ben-choose-no">
<span>
<apex:inputCheckbox value="{!chooseNo}" styleClass="benefitSelection decline" /> I decline 2013-2014 Health Benefits.
</span>
</div>
With jQuery:
<apex:includeScript value="{!URLFOR($Resource.jQuery,'jQuery/jquery-1.10.1.min.js')}"/> <!-- I keep my jQuery scripts in a static resource -->
<apex:includeScript value="{!URLFOR($Resource.jQuery,'jQuery/jquery-ui.min.js')}"/> <!-- jquery UI -->
<script>
var j$=jQuery.noConflict();
j$(document).ready(function(){
j$('.benefitSelection').click(function(){
//alert('You selected '+j$(this).val());
var justSelected=j$(this); //store the which element was selected
j$('.benefitSelection').prop('checked',false); //uncheck all elements
justSelected.prop('checked',true); //reselect the selected element
});
});
</script>