0

我有一个复选框和单选按钮列表,定义如下:

<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 onclick 复选框上,我想禁用 rblConsole 单选按钮列表中的单选按钮。

我试图通过 jQuery endwith 选择器访问单选按钮:

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

那么,如何通过 jQuery 禁用这些?

4

4 回答 4

3

首先,去掉属性选择器中的撇号

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

其次,最好使用控件的 ClientID 属性来获取元素 id:

function ToggleEnabled() {
        var isChecked = $("#<%=chkChange.ClientID %>").is(":checked");
        if (isChecked) {
            $("#<%=rblConsole.ClientID %>").removeAttr("disabled");
        } else {
            $("#<%=rblConsole.ClientID %>").attr("disabled", "disabled");
        }
    }
于 2009-04-24T22:42:18.430 回答
1

我错过了选择器中的右方括号。它应该是:

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

嗬!我的错。

于 2009-04-24T23:54:03.483 回答
0

下面的代码对我有用,

禁用

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

对于启用

$("table[id$=<%= rblConsole.ClientID %>] input").removeAttr("disabled");
于 2018-07-26T05:12:44.560 回答
-1

请检查:

$("input[type=radio][value=EIN]").prop("disabled", true);
于 2015-08-07T08:25:50.230 回答