Click here to Skip to main content
16,011,608 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
I want to disable the Asp.net textbox when I check the Asp.Net Checkbox.

It gives me the following error.
"Microsoft JScript runtime error: 'df.cbAddress' is null or not an object"

Here is my Javascript function

C#
function GetBillingAddress()
{

    df = document.form1;

        if (df.cbAddress.checked) {
            document.getElementById("txtBillStreet").disabled = true;
            document.getElementById("txtBillCity").disabled = true;
            document.getElementById("txtBillState").disabled = true;
            document.getElementById("txtBillZip").disabled = true;
        }
        else {
            document.getElementById("txtBillStreet").disabled = false;
            document.getElementById("txtBillCity").disabled = false;
            document.getElementById("txtBillState").disabled = false;
            document.getElementById("txtBillZip").disabled = false;
            }

}



In Page Load I have the following

C#
protected void Page_Load(object sender, EventArgs e)
    {
        cbAddress.Attributes.Add("onClick", "GetBillingAddress();");
    }



Any help will be appreciated.

Thank's
Posted

if you doing "runat = server" in your asp.net controls you can't just refer them by their id's

you have to do something like this:

document.getElementById('<%= txtBillStreet.ClientID %>')

suggestion:
wrap your all address controls in one asp.net panel control and enable/disable that.
 
Share this answer
 
v3
Comments
Hemant__Sharma 4-May-11 0:07am    
@saxenaabhi6 is right.

My 5 to the accurate answer.

When you have a master page or some panel for the child controls, at client side the child ID is appended to Parent IDs

for example parentPanelID_secondParentID_cbAddress. you can confirm it by simply clicking "View source" in your web browser and checking for control's ID.

Thanks,
Hemant
If the post is resolved give the Resolved symbol.
 
Share this answer
 
use this function
<code>function GetBillingAddress()
{
 
    df = document.getElementById('<%= cbAddress.ClientID %>');
 
    document.getElementById('<%= txtBillStreet%>').disabled = df.checked;
    document.getElementById('<%= txtBillCity%>').disabled = df.checked;
    document.getElementById('<%= txtBillState%>').disabled = df.checked;
    document.getElementById('<%= txtBillZip%>').disabled = df.checked;

}</code>
 
Share this answer
 
For Some reason's the above solution still gives the same error.

But changing the solution to something like this works fine.


C#
function GetBillingAddress()
{


    if (document.getElementById("cbAddress").checked) {
        document.getElementById("txtBillStreet").disabled = true;
        document.getElementById("txtBillCity").disabled = true;
        document.getElementById("txtBillState").disabled = true;
        document.getElementById("txtBillZip").disabled = true;
    }
    else {
        document.getElementById("txtBillStreet").disabled = false;
        document.getElementById("txtBillCity").disabled = false;
        document.getElementById("txtBillState").disabled = false;
        document.getElementById("txtBillZip").disabled = false;
    }


}
 
Share this answer
 
here is ur modfied code

C#
function GetBillingAddress()
{

  var  df = document.getElementById(cbAddress);

        if (df.checked) {
            document.getElementById("txtBillStreet").disabled = true;
            document.getElementById("txtBillCity").disabled = true;
            document.getElementById("txtBillState").disabled = true;
            document.getElementById("txtBillZip").disabled = true;
        }
        else {
            document.getElementById("txtBillStreet").disabled = false;
            document.getElementById("txtBillCity").disabled = false;
            document.getElementById("txtBillState").disabled = false;
            document.getElementById("txtBillZip").disabled = false;
            }

}
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900