我正在尝试使用jquery来禁用复选框,当下拉菜单的选定值是0以外的任何值时。我的问题是当我选择具有0值的项目时,复选框被禁用并获取复选框禁用在取消选中复选框之前,我必须至少选择两个或更多值。
我的代码示例如下:
当所选值为0时,我希望复选框和下拉菜单启用,当所选值不是0时,我想禁用该复选框。无论我是从第一行,底行,行还是中间行开始,我也希望它能工作。
答案 0 :(得分:2)
如果我对你的问题的理解是正确的,那应该这样做:
$("select").change(function() {
$(this).closest("td").prev().find(":checkbox").prop("disabled", $(this).val() !== "0");
});
$(":checkbox").change(function() {
$(this).parent().next().find("select").prop("disabled", this.checked);
});
答案 1 :(得分:1)
试试这个(works for me):
$("select").change(function() {
var $this = $(this),
$checkbox = $this.parent().prev().find("input");
if ($this.val() != 0) {
$checkbox.attr("disabled", true);
} else {
$checkbox.removeAttr("disabled");
}
});
$(":checkbox").change(function() {
var $this = $(this),
$select = $this.parent().next().find("select");
if ($this.is(":checked")) {
$select.attr("disabled", true);
} else {
$select.removeAttr("disabled");
}
});
答案 2 :(得分:0)
这是因为在“更改”事件中,您获得的值是在实际完成更改之前,因此用户“现在”进行的更改直到下次事件触发时才会显示。
您希望使用类似onblur,onmouseup或onkeyup的内容在更改后通知您要更改复选框的属性。