Search code examples
asp.netjavascriptjqueryradiobuttonlist

How to disable asp.net radiobuttonlist via jQuery


I have a checkbox and radiobuttonlist defined as follows:

<asp:CheckBox id="chkChange" runat="server" text="Enable" />
<br />
<asp:RadioButtonList id="rblConsole" runat="server" cssclass="console">
    <asp:ListItem text="XBox 360" value="xbox" />
    <asp:ListItem text="Playstation 3" value="playstation" />
</asp:RadioButtonList>

These controls are in a content page with a master page so the actual html rendered is:

<table id="ctl00_ContentPlaceHolder1_rblConsole" class="console" border="0">
    <tr>
        <td><input id="ctl00_ContentPlaceHolder1_rblConsole_0" type="radio" name="ctl00$ContentPlaceHolder1$rblConsole" value="xbox" /><label for="ctl00_ContentPlaceHolder1_rblConsole_0">XBox 360</label>
        </td>
    </tr>
    <tr>
        <td><input id="ctl00_ContentPlaceHolder1_rblConsole_1" type="radio" name="ctl00$ContentPlaceHolder1$rblConsole" value="playstation" /><label for="ctl00_ContentPlaceHolder1_rblConsole_1">Playstation 3</label>
        </td>
    </tr>
</table>

On the javascript onclick on the checkbox I want to disable the radio buttons in the rblConsole radiobutton list.

I'm trying to get at the radio buttons via the jQuery endswith selector:

function ToggleEnabled() {
        var isChecked = $("*[id$='chkChange']").is(":checked");
        if (isChecked) {
            $("*[name$='rblConsole'").removeAttr("disabled");
        } else {
            $("*[name$='rblConsole'").attr("disabled", "disabled");
        }
    }

So, how to disable these via jQuery?


Solution

  • I was missing the closing square bracket in the selector. It should be:

    $("*[name$='rblConsole']").attr("disabled", "disabled");
    

    Doh! My bad.