我正在尝试使用此代码禁用我的aspcheckbox列表中的其他选项(不是复选框,这是asp.net checkboxlist控件)...
这是jquery
$(document).ready(function () {
$('#<%=lstExposureValue.ClientID%> input:checkbox').click(function () {
var currentIdone = 'Unknown';
var checked = false;
$('#<%=lstExposureValue.ClientID%> input:checkbox').each(function () {
var currentId = $(this).next().html();
if (currentId == currentIdone) {
if (checked) {
$(this).prop('enabled', true);
$("#<%=lstExposureValue.ClientID%> input:checkbox:not(:checked)").prop("enabled", true);
checked = false;
return;
}
else {
$("#<%=lstExposureValue.ClientID%> input:checkbox:not(:checked)").prop("disabled", true);
$("#<%=lstExposureValue.ClientID%> input:checkbox:not(:checked)").prop("checked", false);
checked = true;
}
}
});
});
});
这是asp.net
<h3>
One</h3>
<asp:CheckBoxList ID="lstExposureValue" runat="server">
<asp:ListItem>Short-term exposure</asp:ListItem>
<asp:ListItem>Medium-term exposure</asp:ListItem>
<asp:ListItem>Unknown</asp:ListItem>
</asp:CheckBoxList>
所以当选择unknown时,必须取消选择和禁用其他3个选项。 如果未选中未知,则应启用所有选项。
现在,无论我选择什么选项,它都会禁用其他选项,当我取消选中相同选项时,它会禁用所有选项,任何人都可以帮助.....
答案 0 :(得分:0)
$("#<%=lstExposureValue.ClientID%> input:checkbox:not(:checked)").prop("disabled", true);
$("#<%=lstExposureValue.ClientID%> input:checkbox:not(:checked)").prop("checked", false);
您无法更改已禁用元素的状态。先检查一下,然后禁用该元素。
答案 1 :(得分:0)
这是你的表现。
$(document).ready(function () {
var checked = false;
$('#<%=lstExposureValue.ClientID%> input:checkbox').click(function () {
var currentIdone = 'Unknown';
var currentId = $(this).next().html();
if (currentId == currentIdone) {
if (checked) {
$("#<%=lstExposureValue.ClientID%> input").removeAttr('disabled');
checked = false;
return;
}
else {
$("#<%=lstExposureValue.ClientID%> input").attr('checked', false);
$(this).attr('checked', true);
$('#<%=lstExposureValue.ClientID%> input:not(:checked)').attr('disabled', 'disabled');
checked = true;
}
}
});
});
工作