Как отключить радиобуттонлист asp.net через jQuery - PullRequest
0 голосов
/ 25 апреля 2009

У меня есть флажок и radiobuttonlist, определенные следующим образом:

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

Эти элементы управления находятся на странице содержимого с главной страницей, поэтому фактический отображаемый HTML-код:

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

На включенном javascript флажке я хочу отключить переключатели в списке переключателей rblConsole.

Я пытаюсь переключиться на переключатели через JQuery заканчивается с помощью селектора:

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

Итак, как отключить их через jQuery?

Ответы [ 4 ]

1 голос
/ 25 апреля 2009

Мне не хватало закрывающей квадратной скобки в селекторе. Должно быть:

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

Doh! Мой плохой.

1 голос
/ 25 апреля 2009

сначала удалите апострофию в селекторе атрибутов

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

во-вторых, лучше использовать свойство ClientID элементов управления для получения идентификаторов элементов:

function ToggleEnabled() {
        var isChecked = $("#<%=chkChange.ClientID %>").is(":checked");
        if (isChecked) {
            $("#<%=rblConsole.ClientID %>").removeAttr("disabled");
        } else {
            $("#<%=rblConsole.ClientID %>").attr("disabled", "disabled");
        }
    }
0 голосов
/ 26 июля 2018

Ниже у меня работает код,

для отключения

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

для включения

$("table[id$=<%= rblConsole.ClientID %>] input").removeAttr("disabled");
0 голосов
/ 07 августа 2015

Пожалуйста, проверьте это:

$("input[type=radio][value=EIN]").prop("disabled", true);
...