>>>Hi all,
>>>
>>>I have what I thought would be a simple task. I have a user control on an asp.net page showing an agreement form. All I want to do is enable a continue button after a checkbox is checked to indicate agreement. I wanted to avoid a postback so am trying to set the button to enabled when the checkbox is checked but I cannot get this to work. I have tried several approaches found on web including the below. (I changed the angle brackets to parens so they would show)
>>>
>>>Anybody with javascript knowledge have an answer that might help me? Thanks a bunch
>>>Tim
>>>
>>>
>>>This is just one approach I tried.
>>>
>>> (mm:mmCheckBox ID="chkAgree" runat="server" Checked="false" Text="I Agree to the Terms" /)
>>>
>>> (mm:mmButton ID="btnAgreeContinue" runat="server" Text="Continue"
>>> Enabled="False" /)
>>>
>>>function SetAgreeAndContinue(checkbox, buttonid) {
>>> var button = document.getElementById(buttonid);
>>>
>>> if (checkbox.checked)
>>> button.enabled = true;
>>> else
>>> button.enabled = false;
>>> }
>>>
>>>In the code behind
>>>protected override void OnInit(EventArgs e)
>>>{
>>> chkAgree.Attributes.Add("onClick", string.Format("javascript:SetAgreeAndContinue(this,'{0}');", btnAgreeContinue.ClientID));
>>> base.OnInit(e);
>>>}
>>>
>>
>>Haven't tried your code but something based on this should work (assuming the mm controls are derived from the asp ones):
<head runat="server">
>> <title></title>
>></head>
>> <script language="javascript" type="text/javascript">
>> function SetAgreeAndContinue(checkbox) {
>> var button = document.getElementById("btnAgreeContinue");
>> button.disabled = !checkbox.checked;
>> }
>> </script>
>>
>><body>
>> <form id="form1" runat="server">
>> <div>
>> <asp:CheckBox ID="chkAgree" runat="server" onclick="SetAgreeAndContinue(this)" />
>> <asp:Button ID="btnAgreeContinue" runat="server" Text="OK" disabled="true" />
>> </div>
>> </form>
>></body>
>
>Thanks Viv,
>
>How would this be different since I am using a web user control. I cannot put the script in the head section (there isn't one). I suppose I could add a content place holder in the head of the master page, but not sure I could add to that within the web user control. Maybe I need to inject it via code.
The script doesn't have to be in the header section. Anywhere (as long as it's before the place where it is called) will do. You could, for example, put it within the div element above.
Injection would work. If I get time I'll try it.