Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Javascript set button enable on checkbox true
Message
De
15/10/2010 09:45:29
 
 
À
15/10/2010 09:36:34
Timothy Bryan
Sharpline Consultants
Conroe, Texas, États-Unis
Information générale
Forum:
ASP.NET
Catégorie:
Autre
Versions des environnements
Environment:
C# 4.0
Application:
Web
Divers
Thread ID:
01485567
Message ID:
01485577
Vues:
29
>>>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.
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform