我有一个复选框和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 onclick上复选框我要禁用rblConsole radiobutton列表中的单选按钮。
我正试图通过jQuery结束选择器来获取单选按钮:
function ToggleEnabled() {
var isChecked = $("*[id$='chkChange']").is(":checked");
if (isChecked) {
$("*[name$='rblConsole'").removeAttr("disabled");
} else {
$("*[name$='rblConsole'").attr("disabled", "disabled");
}
}
那么,如何通过jQuery禁用这些?
答案 0 :(得分:1)
首先,删除属性选择器中的撇号
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");
}
}
答案 1 :(得分:1)
我错过了选择器中的右方括号。它应该是:
$("*[name$='rblConsole']").attr("disabled", "disabled");
卫生署!我的坏。
答案 2 :(得分:0)
下面的代码对我有用,
禁用
$("table[id$=<%= rblConsole.ClientID %>] input").attr("disabled", "disabled");
启用
$("table[id$=<%= rblConsole.ClientID %>] input").removeAttr("disabled");
答案 3 :(得分:-1)
请检查:
$("input[type=radio][value=EIN]").prop("disabled", true);