Can anyone please tell me how to disable a textbox, if a checkbox is checked, and enable textbox if the checkbox is not checked?
            Asked
            
        
        
            Active
            
        
            Viewed 9.7k times
        
    7 Answers
51
            
            
        Put this in the checkbox:
onclick="document.getElementById('IdOfTheTextbox').disabled=this.checked;"
 
    
    
        Guffa
        
- 687,336
- 108
- 737
- 1,005
18
            
            
            <input type="text" id="textBox">
    <input type="checkbox" id="checkBox" onclick="enableDisable(this.checked, 'textBox')">
    <script language="javascript">
    function enableDisable(bEnable, textBoxID)
    {
         document.getElementById(textBoxID).disabled = !bEnable
    }
</script>
 
    
    
        kemiller2002
        
- 113,795
- 27
- 197
- 251
5
            
            
        jQuery(document).ready(function () {
   $("#checkBox").click(function () {
      $('#textBox').attr("disabled", $(this).is(":checked"));
   });
});
 
    
    
        Conner
        
- 30,144
- 8
- 52
- 73
 
    
    
        Nooglesoft
        
- 51
- 1
- 2
2
            
            
        Create a Javascript function like this:
function EnableTextbox(ObjChkId,ObjTxtId)
{
    if(document.getElementById(ObjChkId).checked)
        document.getElementById(ObjTxtId).disabled = false;
    else
        document.getElementById(ObjTxtId).disabled = true;
}
Create a C# function like this on the grid RowDataBound:
protected void lstGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        TextBox txtAllowed = (TextBox)e.Row.FindControl("txtAllowed");
        CheckBox chkAllowed = (CheckBox)e.Row.FindControl("RowSelector");
        chkAllowed.Attributes.Add("onClick", "EnableTextbox('" + chkAllowed.ClientID + "', '" + txtAllowed.ClientID + "')");
    }
}
1
            
            
        I have the simplest solution yet for this Simple task. Believe me or not it works
s = 1;
   function check(){
       o = document.getElementById('opt');
       if(o.value=='Y'){
           s++;
           if(s%2==0)
           $('#txt').prop('disabled',true);
           else
           $('#txt').prop('disabled',false);
       }
       
   }<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Text: <input type="text" name="txt" id="txt">
<input type="checkbox" name="opt" id="opt" value="Y" onclick="check()">Here is code.
 
    
    
        Saptarshee Das
        
- 11
- 1
0
            
            
        <script type="text/javascript">
    function EnableDisableTextBox(chkPassport) {
        var txtPassportNumber = document.getElementById("txtPassportNumber");
       txtPassportNumber.disabled = chkPassport.checked ? false : true;
        if (!txtPassportNumber.disabled) {
            txtPassportNumber.focus();
        }
    }
</script>
<label for="chkPassport">
<input type="checkbox" id="chkPassport" onclick="EnableDisableTextBox(this)" />
Do you have Passport?
</label>
<br />
Passport Number:
<input type="text" id="txtPassportNumber" disabled="disabled" />
 
    
    
        dev dev
        
- 121
- 1
- 2
- 17
-2
            
            
        Using jQuery:
$("#checkbox").click(function(){
  $("#textbox")[0].disabled = $(this).is(":checked");
});
 
    
    
        Marius
        
- 57,995
- 32
- 132
- 151
- 
                    I seriously can't believe that this answer survived for three years while not working at all... Either use `$("#textbox")[0].disabled` on the left side or replace the whole line with `$("#textbox").prop('disabled', ...);` - oh, and why not use `this.checked` on the right side? – ThiefMaster Sep 11 '12 at 22:28
 
     
     
    