Example of use with execId:
XSP.partialRefreshPost( '#{id:targetOfRefresh}', { execId: '#{id:targetThatShouldBeProcessed}' } );
I had some issues getting partial refresh triggered by radio buttons to work as I wanted to across browsers. I found a simple workaround. Instead of specifying the partial refresh in the event handler, I set no submission for the server side part, and execute a slightly delayed XSP.partialRefreshPost from the client side event action:
<xp:radioGroup id="someId" value="#{document.someField}" defaultValue="yes">
<xp:eventHandler event="onclick" submit="false">
<xp:this.script><![CDATA[setTimeout( function(){
XSP.partialRefreshPost( '#{id:targetOfRefresh}' );
}, 50 );]]></xp:this.script>
</xp:eventHandler>
<xp:selectItem itemValue="yes" itemLabel="Yes" />
<xp:selectItem itemValue="no" itemLabel="No" />
</xp:radioGroup>
This seems to work nicely across the browsers I tested in, regardless of triggering the value change through the radio button or the label.