我的asp控件设置如下:
<asp:CheckBoxList runat="server" ID="toppingsCheckBoxList">
<asp:ListItem type="checkbox" name="toppings" value="pickles" class="toppings">pickles</asp:ListItem>
<asp:ListItem type="checkbox" name="toppings" value="lettuce" class="toppings">lettuce</asp:ListItem>
<asp:ListItem type="checkbox" name="toppings" value="tomato" class="toppings">tomato</asp:ListItem>
<asp:ListItem type="checkbox" name="toppings" value="none" ID="none">none</asp:ListItem>
</asp:CheckBoxList>
并且一直在尝试通过 Jquery 禁用复选框,就像我过去使用标准 HTML 控件的方式一样,但是使用 asp 控件并不能那么容易地工作。
到目前为止,这是我的努力:
//Jquery for topping disabling/enabling
$(document).ready(function () {
//disable toppings when none is selected
$('#none').click(function () {
if ($("#none").selector) {
$(".toppings").prop("disabled", true);
}else
$(".toppings").prop("disabled", false);
});
//disable none when a topping is selected
$(".toppings").click(function () {
$(".toppings").each(function (index, element) {
if (element.selector && !$("#none").selector) {
$("#none").prop("disabled", true);
}
});
});
//enable none when no topping is selected
$(".toppings").click(function () {
var count = 0;
$(".toppings").each(function (index, element) {
if (!element.selector && index in [0, 1, 2]) {
count++;
}
});
if (count == 3) {
$("#none").prop("disabled", false);
}
});
});
如您所见,我发现我可以将 .checked 更改为 .selector 以查看已检查的内容,但实际上将 listitem 复选框更改为按类名禁用是很困难的,但我可能只是缺少简单的解决方案,因为我对 asp.net 不是很有经验。
谢谢!