Tengo una casilla de verificación y radiobuttonlist define de la siguiente manera:

<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>

Estos controles en una página de contenido con una página principal, así que el html prestado es:

<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>

En el javascript onclick en la casilla de verificación deseo desactivar los botones de radio en el rblConsole radiobutton lista.

Estoy tratando de conseguir en los botones de radio a través de jQuery endswith selector:

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

Así que, ¿cómo deshabilitar estos a través de jQuery?

4 Comentarios

  1. 2

    primero, quitar el apostrophy en el selector de atributo

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

    segundo, es mejor que tu uso de la propiedad ClientID de los controles para obtener los elementos de identificación:

    function ToggleEnabled() {
            var isChecked = $("#<%=chkChange.ClientID %>").is(":checked");
            if (isChecked) {
                $("#<%=rblConsole.ClientID %>").removeAttr("disabled");
            } else {
                $("#<%=rblConsole.ClientID %>").attr("disabled", "disabled");
            }
        }
    • La segunda manera de hacer este trabajo no lo hizo. Hay una tabla creada con este ID, pero los botones de radio mismos han añadido un número (por ejemplo, _0, _1). Forma correcta debe ser $(«input[id^='<%= rblConsole.ClientID %>’]»).removeAttr(«disabled»); donde el identificador comienza con (^) el ID de cliente.
  2. 1

    Me faltaba el corchete de cierre en el selector. Debe ser:

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

    Doh! Mi mala.

  3. 0

    A continuación el código funciona para mí,

    Para Deshabilitar

    $("table[id$=<%= rblConsole.ClientID %>] input").attr("disabled", "disabled");

    Para Habilitar

    $("table[id$=<%= rblConsole.ClientID %>] input").removeAttr("disabled");

Dejar respuesta

Please enter your comment!
Please enter your name here