I recently learned how to use the hide, show, reset, and disable JS calls in Catalog forms and below is an example of how I now create my forms to handle what you are asking for. You do not have to use the reset or disable functions like I do in my example but I like to prevent my users on checkout review from changing the data already saved by disabling the radio buttons. I also like to reset the form if someone toggles back and forth between options clearing the previous data.
Form name = Software_Install
Form onLoad: ca_fd.js.RadioButtonCheckSoftware_Install()
Radio Button Group
Visual Label: Need Software Install on your PC?
id=NeedSoftware
required = True
Radio button 1
id = rb01
value = Yes, needs software installed
Visual Label: Yes
Action: onclick show PC Name field
onClick: ca_fdShowField('Software_Install','PCName');
Radio button 2
id = rb02
value = No, does not need software installed
Visual Label: No
Action: onclick hide text field of PC Name and reset data
onClick: ca_fdHideField('Software_Install','PCName');ca_fdResetFields('Software_Install',['PCName']);
Text Field
id=PCName
Visual Label: PC Name
Required = True
Hidden = True
Form Script
{RadioButtonCheckSoftware_Install:function(){
var isYesSelected = ca_fdIsSelectRadio('Software_Install','NeedSoftware','rb01');
var isNoSelected = ca_fdIsSelectRadio('Software_Install','NeedSoftware','rb02');
if (isYesSelected == 1) {
ca_fdShowField('Software_Install','PCName');
ca_fdDisableFields('Software_Install',['rb01','rb02']);}else{}
if (isNoSelected == 1) {
ca_fdHideField('Software_Install','PCName');
ca_fdDisableFields('Software_Install',['rb01','rb02']);}else{}}}