下拉列表中的jquery值选中禁用复选框

下拉列表中的jquery值选中禁用复选框,jquery,select,checkbox,drop-down-menu,Jquery,Select,Checkbox,Drop Down Menu,当下拉菜单的选定值不是0时,我尝试使用jquery禁用复选框。我的问题是,当我选择值为0的项目时,复选框将被禁用,要使复选框禁用,我必须选择至少两个或多个值,然后才能取消复选框 下面是我的代码示例: 当所选值为0时,我希望启用复选框和下拉列表;当所选值不是0时,我希望禁用复选框。我还希望它能够工作,无论我是从第一行、底部、第一行还是中间行开始 如果我对您的问题的理解是正确的,这应该可以做到: $("select").change(function() { $(this).closest

当下拉菜单的选定值不是0时,我尝试使用jquery禁用复选框。我的问题是,当我选择值为0的项目时,复选框将被禁用,要使复选框禁用,我必须选择至少两个或多个值,然后才能取消复选框

下面是我的代码示例:


当所选值为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");
  }
});