【发布时间】:2014-08-29 07:42:13
【问题描述】:
我必须动态禁用特定状态的删除按钮,我在某种程度上成功地做到了这一点,但是当我进行多选时它失败了。
$(".checkboxes").click(function () {
var currentstatus;
var blnEnableBtn = false;
$('input:checked').each(function (index, element) {
currentstatus = $.trim($(element).closest('td').siblings()[2].innerText);
if (currentstatus == "hit" || currentstatus == "average")
blnEnableBtn = true;
else
blnEnableBtn = false;
});
if (blnEnableBtn)
$("#btnDeleteRow").removeAttr('disabled');
else
$("#btnDeleteRow").attr('disabled', 'disabled');
});
正如我的代码中提到的,我正在为hit 和average 状态启用删除按钮,而对于剩下的一切,我将禁用它。
场景 1(单选):当您每次都选择单个复选框时工作正常。
场景 2(多选):选中状态为“死亡”的复选框,然后选择状态为“命中”的复选框,您可以观察到“删除”按钮将是 enabled,这不应该发生在我的情况下,就像在多选中一样,并且存在“死亡”类型的状态,这应该使按钮总体上被禁用,而这并没有发生。
感谢任何解决方法
【问题讨论】:
-
如果至少有一种状态是“命中”或“平均”,您想禁用按钮吗?然后只需将
if (blnEnabledBtn === true) return;添加为each回调的第一行。