d2fox
asked on
how to get javascript to enable / disable radio buttons
So below are the HTML and the javascript where all I'm trying to do is enable / disable (and clear) a second set of radio buttons based on yes / no for the first ones. I know the code runs, as I've put alerts in to make sure the test of the first ' yes / no' is being found. (the javascript is tied to the radio buttons via the code behind:
ClientScript.RegisterClien tScriptInc lude("acti vateImagin gStage", "activateImagingStage.js")
Imaging_Yes.Attributes.Add ("onclick" , "activateImagingStage();")
Imaging_No.Attributes.Add( "onclick", "activateImagingStage();")
In IE8, the second set of radio buttons gets activated / deactivated based on the first, but the second set don't get cleared when they are disabled.
In FF, nothing gets enabled / disabled.
Seems like it should be so simple...
ClientScript.RegisterClien
Imaging_Yes.Attributes.Add
Imaging_No.Attributes.Add(
In IE8, the second set of radio buttons gets activated / deactivated based on the first, but the second set don't get cleared when they are disabled.
In FF, nothing gets enabled / disabled.
Seems like it should be so simple...
<asp:TableRow ID="TableRow28" runat="server">
<asp:TableCell runat="server" ColumnSpan="4">22. Did you perform imaging studies?
</asp:TableCell>
<asp:TableCell CssClass="answer" runat="server">
<asp:RadioButton ID="Imaging_Yes" GroupName="imaging" runat="server" />
</asp:TableCell>
<asp:TableCell CssClass="answer" runat="server">
<asp:RadioButton ID="Imaging_No" GroupName="imaging" runat="server" />
</asp:TableCell>
</asp:TableRow>
<asp:TableRow ID="Question23a" runat="server" Enabled="false" >
<asp:TableCell runat="server" ColumnSpan="4">23. What stage was the diagnostic imaging ordered?
</asp:TableCell>
</asp:TableRow>
<asp:TableRow ID="Question23b" runat="server" >
<asp:TableCell></asp:TableCell>
<asp:TableCell ID="tc8b" runat="server" ColumnSpan="4">
<asp:RadioButtonList ID="Imaging_Stage" runat="server">
<asp:ListItem Value="1" runat="server" Text="Stage 0 or 1A" />
<asp:ListItem Value="2" runat="server" Text="Other" />
</asp:RadioButtonList>
</asp:TableCell>
</asp:TableRow>
function activateImagingStage(r) {
var Imaging_Stage = document.getElementsByName("<%= Imaging_Stage.ClientID %>".replace(/_/g, '$'));
if ((document.getElementById('Imaging_Yes').checked) ) {
document.getElementById('Question23a').disabled = false;
document.getElementById('Question23b').disabled = false;
for (var i = 0; i < Imaging_Stage.length; i++) {
Imaging_Stage[i].disabled = false ;
}
}
else {
for (var i = 0; i < Imaging_Stage.length; i++) {
Imaging_Stage[i].disabled = true;
Imaging_Stage[i].checked = false;
}
document.getElementById('Question23a').disabled = true;
document.getElementById('Question23b').disabled = true;
}
}
Hi, You have to use the onClientClick method of a button for calling javascript in asp.net.
ASKER
Thanks. Ok, so I just tried that and nothing happens when I use
ClientScript.RegisterClien tScriptInc lude("acti vateImagin gStage", "activateImagingStage.js")
Imaging_Yes.Attributes.Add ("onclient click", "activateImagingStage();")
Imaging_No.Attributes.Add( "onclientc lick", "activateImagingStage();")
At least with what I have above, I know I'm getting to the javascript function.
ClientScript.RegisterClien
Imaging_Yes.Attributes.Add
Imaging_No.Attributes.Add(
At least with what I have above, I know I'm getting to the javascript function.
Try the javascript below...
function activateImagingStage(r) {
var Imaging_Stage = document.getElementsByName("<%= Imaging_Stage.ClientID %>".replace(/_/g, '$'));
if ((document.getElementById('Imaging_Yes').checked) ) {
document.getElementById('Question23a').disabled = false;
document.getElementById('Question23b').disabled = false;
for (var i = 0; i < Imaging_Stage.length; i++) {
Imaging_Stage[i].disabled = false ;
}
}
else {
for (var i = 0; i < Imaging_Stage.length; i++) {
Imaging_Stage[i].checked = false;
Imaging_Stage[i].disabled = true;
}
document.getElementById('Question23a').disabled = true;
document.getElementById('Question23b').disabled = true;
}
}
ASKER
that works in FF but not IE.
hmmm...
hmmm...
Try the suggestion here:
http://www.bluehostforum.com/showthread.php?16660-Javascript-to-reset-radio-button
http://www.bluehostforum.com/showthread.php?16660-Javascript-to-reset-radio-button
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.