下拉列表中的jquery值选中禁用复选框
当下拉菜单的选定值不是0时,我尝试使用jquery禁用复选框。我的问题是,当我选择值为0的项目时,复选框将被禁用,要使复选框禁用,我必须选择至少两个或多个值,然后才能取消复选框 下面是我的代码示例:下拉列表中的jquery值选中禁用复选框,jquery,select,checkbox,drop-down-menu,Jquery,Select,Checkbox,Drop Down Menu,当下拉菜单的选定值不是0时,我尝试使用jquery禁用复选框。我的问题是,当我选择值为0的项目时,复选框将被禁用,要使复选框禁用,我必须选择至少两个或多个值,然后才能取消复选框 下面是我的代码示例: 当所选值为0时,我希望启用复选框和下拉列表;当所选值不是0时,我希望禁用复选框。我还希望它能够工作,无论我是从第一行、底部、第一行还是中间行开始 如果我对您的问题的理解是正确的,这应该可以做到: $("select").change(function() { $(this).closest
当所选值为0时,我希望启用复选框和下拉列表;当所选值不是0时,我希望禁用复选框。我还希望它能够工作,无论我是从第一行、底部、第一行还是中间行开始 如果我对您的问题的理解是正确的,这应该可以做到:
$("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);
});
这是因为在“更改”事件中,您得到的值在更改实际完成之前,因此用户“现在”所做的更改直到下次事件触发时才会显示 您希望使用onblur、onmouseup或onkeyup等功能在更改后通知您要更改复选框的属性。尝试以下操作:
谢谢,它几乎起作用了。我还希望在选中复选框时能够禁用下拉列表checked@larry-我已经更新了答案和演示。请看一看,效果很好。我尝试添加一个文本框,该文本框仅在选定值为1时显示,但我只能使其在第一个下拉列表中工作。我做错了什么?您需要插入相对于当前select元素的文本框,例如
$(this)。在(“”)之后选择更改处理程序中的代码>。您应该阅读更多关于DOM树遍历的内容:谢谢,这也很有效。如果我想添加一个文本框来显示/隐藏,我会这样做:If($this.val()!=0){$checkbox.attr(“disabled”,true);$(“:text”).hide();}else If($this.val()!==1){$checkbox.attr(“disabled”,true);$(“:text”).show();}else{$checkbox.removeAttr(“disabled”);});
$("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");
}
});