Javascript 如何将已禁用的复选框标签设置为未选中?

Javascript 如何将已禁用的复选框标签设置为未选中?,javascript,jquery,html,css,checkbox,Javascript,Jquery,Html,Css,Checkbox,您好,因为两天以来,我一直在做这个基本的项目,再次编写代码,但最后一件事是我做不到 如果你点击标签复选框被选中。但这不是我想要的东西。如果你点击复选框,那么复选框必须被选中(我想这只是那些有ul复选框子嵌套的东西) html jquery $(document).ready(function() { $('.new-checkbox li:has(ul)').addClass('parent'); $('.new-checkbox input[type=checkbox]:not(

您好,因为两天以来,我一直在做这个基本的项目,再次编写代码,但最后一件事是我做不到

如果你点击标签复选框被选中。但这不是我想要的东西。如果你点击复选框,那么复选框必须被选中(我想这只是那些有ul复选框子嵌套的东西)

html

jquery

$(document).ready(function() {

  $('.new-checkbox li:has(ul)').addClass('parent');

  $('.new-checkbox input[type=checkbox]:not(label)').on("change", function() {
    var checked = this.checked,
      $li = $(this).parent();
    $li.find('input[type=checkbox]').prop('checked', checked).parent().toggleClass('has-checked', checked);

    $li.parentsUntil('.new-checkbox', 'li').each(function() {
      var $checks = $(this).find('ul input[type=checkbox]');
      $(this).children('input[type=checkbox]').prop('checked', !$checks.filter(':not(:checked)').length);

      $(this).toggleClass('has-checked', $checks.is(':checked'));
    });
  });
});

所以你们想,若用户点击标签,那个么复选框不应该改变,并且应该是只有当他点击复选框时才选择。我说得对吗?是的,拉杰什,你说得对。但是我想把这个给那些已经嵌套的人checkbox@Rajesh是的,是昨天的事。查看关于我的解决方案的讨论。@fortherest您是否尝试过从标签中删除
for=“input1”
。@Rajesh是的,我尝试过,但当我单击复选框时,它没有被选中,如果我单击了标签子复选框,则复选框没有按您的意愿显示,如果用户单击标签,则复选框不应更改,并且只有当他点击复选框时才应该被选中。我说得对吗?是的,拉杰什,你说得对。但是我想把这个给那些已经嵌套的人checkbox@Rajesh是的,是昨天的事。查看关于我的解决方案的讨论。@fortherest您是否尝试过从标签中删除
for=“input1”
。@Rajesh是的,我尝试过,但当我单击复选框时,它不会被选中,如果我单击了标签子复选框,则不会显示
.new-checkbox ul {
  padding: 0;
  margin: 0;
  list-style: none;
  margin-left: 30px;
  font: normal 11px/16px"Segoe UI", Arial, Sans-serif;
}
.new-checkbox ul:first-child {
  margin-left: 0;
}
.new-checkbox ul li {
  margin: 3px 0;
}
.new-checkbox input[type="checkbox"] {
  display: none;
}
.new-checkbox label {
  cursor: pointer;
}
.new-checkbox input[type="checkbox"] + label:before {
  border: 1px solid #ffffff;
  content: "\00a0";
  display: inline-block;
  font: 16px/1em sans-serif;
  height: 13px;
  width: 13px;
  margin: 2px .25em 0 0;
  padding: 0;
  vertical-align: top;
  border: solid 1px #1375b3;
  color: #1375b3;
  opacity: .50;
}
.new-checkbox input[type="checkbox"]:checked + label:before {
  background: #fff;
  color: #1375b3;
  content: "\2714";
  text-align: center;
  box-shadow: 0 0 2px rgba(0, 0, 0, .25) inset;
  opacity: 1;
}
.new-checkbox input[type="checkbox"]:checked + label:after {
  font-weight: bold;
}
.new-checkbox ul li:before {
  content: "\25b6";
  display: inline-block;
  margin: 2px 0 0;
  width: 13px;
  height: 13px;
  vertical-align: top;
  text-align: center;
  color: #e74c3c;
  font-size: 8px;
  line-height: 13px;
  cursor: pointer;
}
li.parent.has-checked:before {
  content: "\25bc" !important;
  display: inline-block;
  margin: 2px 0 0;
  width: 13px;
  height: 13px;
  vertical-align: top;
  text-align: center;
  color: #e74c3c;
  font-size: 8px;
  line-height: 13px;
  cursor: pointer;
}

.new-checkbox li {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.new-checkbox input[type="checkbox"][id]:checked ~ li::before {
  content: "\25bc";
}
.new-checkbox li ul {
  display: none;
}
.new-checkbox li.has-checked  > ul {
  display: block;
}
$(document).ready(function() {

  $('.new-checkbox li:has(ul)').addClass('parent');

  $('.new-checkbox input[type=checkbox]:not(label)').on("change", function() {
    var checked = this.checked,
      $li = $(this).parent();
    $li.find('input[type=checkbox]').prop('checked', checked).parent().toggleClass('has-checked', checked);

    $li.parentsUntil('.new-checkbox', 'li').each(function() {
      var $checks = $(this).find('ul input[type=checkbox]');
      $(this).children('input[type=checkbox]').prop('checked', !$checks.filter(':not(:checked)').length);

      $(this).toggleClass('has-checked', $checks.is(':checked'));
    });
  });
});