Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Disable asp.net radiobutton with javascript

I'm trying to disable a bunch of controls with JavaScript (so that they post back values). All the controls work fine except for my radio buttons as they lose their value. In the below code which is called via a recursive function to disable all child controls the Second else (else if (control is RadioButton)) is never hit and the RadioButton control is identified as a Checkbox control.

    private static void DisableControl(WebControl control)
    {

        if (control is CheckBox)
        {
            ((CheckBox)control).InputAttributes.Add("disabled", "disabled");

        }
        else if (control is RadioButton)
        { 

        }
        else if (control is ImageButton)
        {
            ((ImageButton)control).Enabled = false;
        }
        else
        {
            control.Attributes.Add("readonly", "readonly");
        }
    }

Two Questions:
1. How do I identify which control is a radiobutton?
2. How do I disable it so that it posts back its value?

like image 973
Nicholas Avatar asked Dec 14 '25 21:12

Nicholas


1 Answers

I found 2 ways to get this to work, the below code correctly distinguishes between the RadioButton and Checkbox controls.

    private static void DisableControl(WebControl control)
    {
        Type controlType = control.GetType();

        if (controlType == typeof(CheckBox))
        {
            ((CheckBox)control).InputAttributes.Add("disabled", "disabled");

        }
        else if (controlType == typeof(RadioButton))
        {
            ((RadioButton)control).InputAttributes.Add("disabled", "true");
        }
        else if (controlType == typeof(ImageButton))
        {
            ((ImageButton)control).Enabled = false;
        }
        else
        {
            control.Attributes.Add("readonly", "readonly");
        }
    }

And the solution I used is to set SubmitDisabledControls="True" in the form element which is not ideal as it allows a user to fiddle with the values but is fine in my scenario. The second solution is to mimic the Disabled behavior and details can be found here: https://web.archive.org/web/20210608183803/http://aspnet.4guysfromrolla.com/articles/012506-1.aspx'>https://web.archive.org/web/20210608183803/http://aspnet.4guysfromrolla.com/articles/012506-1.aspx.

like image 131
Nicholas Avatar answered Dec 17 '25 10:12

Nicholas



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!