我有一个Checkbox并在相同的表行和不同的td中禁用了Radiobuttonlist,只是在我选中/取消选中复选框时尝试启用/禁用它。
<tr class = "main">
<td colspan="2">
<input id="CheckOne" type="checkOne" name="checkOne" />
<label for="CheckOne">Some Text</label>
</td>
<td align="center">
<table id="RadioButtonListOne" disabled="disabled" title="Choices" border="0">
<tr>
<td>
<span disabled="disabled">
<input id="RadioButtonListOne_0" type="radio" name="RadioButtonListOne" value="Y" disabled="disabled" />
<label for="RadioButtonListOne_0">Yes</label></span>
</td>
<td>
<span disabled="disabled"><input id="RadioButtonListOne_1" type="radio" name="RadioButtonListOne" value="N" disabled="disabled" />
<label for="RadioButtonListOne_1">No</label>
</span>
</td>
</tr>
</table>
</td>
</tr>
这就是原始服务器端html的样子:
<tr class = "main">
<td colspan="2">
<asp:CheckBox ID="CheckBoxOne" runat="server" Text="Some Text"/>
</td>
<td align="center">
<asp:RadioButtonList ID="RadioButtonListOne" RepeatDirection="Horizontal">
<asp:ListItem Value="Y">Yes asp:ListItem>
<asp:ListItem Value="N">No</asp:ListItem>
</asp:RadioButtonList>
</td>
</tr>
由于某种原因,我正在尝试一些明显的事情,即
$('#<%= CheckBoxOne.ClientID %>').click(function()
{
if ($(this).is(":checked"))
{
$('#<%= RadioButtonListOne.ClientID%> input:radio').removeAttr('disabled');
}
else
{
$('#<%= RadioButtonListOne.ClientID%> input:radio').attr('disabled', 'disabled');
}
});
然后不起作用,但逻辑上它应该。我在这里做错了什么?
答案 0 :(得分:1)
为什么你在你的jquery代码中包含&lt;%= RadioButtonListOne.ClientID%input:radio,你也错过了尾随&gt;符号
$('#<%= RadioButtonListOne.ClientID%> input:radio').removeAttr('disabled');
是你的jquery代码在同一页面中,所以它在服务器被客户端下载之前由服务器处理?像&lt;%= RadioButtonListOne.ClientID%&gt;这样的东西不会在php,asp或html.erb等文件之外工作
您可以尝试将if check更改为
if ($(this).attr('checked') == 'checked')
而不是.is(':checked')
答案 1 :(得分:0)
您的复选框ID是“CheckOne”:
<input id="CheckOne" type="checkOne" name="checkOne" />
但是您的代码看起来像是引用了(最可能的)数值:
$('#<%= CheckOne.ClientID %>').click(function()
您的复选框的ID应与客户的ID匹配:
<input id="<%= CheckOne.ClientID %>" type="checkOne" name="checkOne" />
或
<input id="CheckOne_<%= CheckOne.ClientID %>" type="checkOne" name="checkOne" />
将jQuery调整为
$('#CheckOne_<%= CheckOne.ClientID %>').click(function()
单选按钮ID也存在类似的问题。