javascript - 选择全部 |使用切换按钮取消选择所有复选框

标签 javascript jquery html checkbox togglebutton

我需要选择按钮切换上的所有复选框并取消选择所有复选框。

这是复选框的 html 代码

<div class="accordion-header js-accordion-header">
<input type="checkbox" class="to-labelauty-icon labelauty" name="inputLableautyNoLabeledCheckbox" data-plugin="labelauty" data-label="false" id="labelauty-2" value="tc_Logout" aria-hidden="true" style="display: none;">
<label for="labelauty-2">
<span class="labelauty-unchecked-image"></span>
<span class="labelauty-checked-image"></span>
</label>  tc_Logout
</div>

当我选择此复选框时,aria-checked="true" 会自动添加到 <label for="labelauty-2">输出这个

<label for="labelauty-1" aria-checked="true">
<span class="labelauty-unchecked-image"></span>
<span class="labelauty-checked-image"></span>
</label>

当选中和取消选中时,它将状态更改为truefalse

现在我有几个像这样的复选框,需要使用切换按钮选中或取消选中。

这是我的切换按钮的 html 代码

<div class="toggle-wrap w-checkbox float-right">
  <input class="toggle-ticker w-checkbox-input" data-ix="toggle-switch" data-name="Toggle Switch" id="Toggle-Switch" name="Toggle-Switch" type="checkboxtoggle" onclick="toggle()">
  <label class="toggle-label w-form-label" for="Toggle-Switch"></label>
  <div class="toggle">
    <div class="toggle-active">
      <div class="active-overlay"></div>
      <div class="top-line"></div>
      <div class="bottom-line"></div>
    </div>
  </div>
</div>

这是我的 JS 代码,它返回错误“prop is not Defined”

function toggle(source) {
  checkboxes = document.getElementsByName('inputLableautyNoLabeledCheckbox');
  for (var i = 0, n = checkboxes.length; i < n; i++) {
    checkboxes[i].checked = source.checked;
  }
}

如何使用 javascript 或 jquery 实现此目的

最佳答案

工作(没有事件监听器)

注意:请参阅下一个示例,该示例使用事件监听器并且是首选。

为了让这个工作正常进行,我必须解决一些问题。

参见:https://jsfiddle.net/0p64mdsg/4

首先,您的输入类型实际上并没有切换。 其次,当您调用切换函数时,您没有传递 this

我的 jsFiddle 中代码的当前版本:

function toggle(source) {
  checkboxes = document.getElementsByName('inputLableautyNoLabeledCheckbox');
  alert('TEST2');
  for (var i = 0, n = checkboxes.length; i < n; i++) {
    checkboxes[i].checked = source.checked;
  }
}

    
<div class="accordion-header js-accordion-header">
  <input type="checkbox" class="to-labelauty-icon labelauty" name="inputLableautyNoLabeledCheckbox" data-plugin="labelauty" data-label="false" id="labelauty-2" value="tc_Logout" aria-hidden="true" >
  <label for="labelauty-2">
  <span class="labelauty-unchecked-image"></span>
  <span class="labelauty-checked-image"></span>
  </label>  tc_Logout
  </div>

  <label for="labelauty-1" aria-checked="true">
  <span class="labelauty-unchecked-image"></span>
  <span class="labelauty-checked-image"></span>
  </label>
  Test1
  <div class="toggle-wrap w-checkbox float-right">
    <input class="toggle-ticker w-checkbox-input" data-ix="toggle-switch" data-name="Toggle Switch" id="Toggle-Switch" name="Toggle-Switch" type="checkbox" onclick="toggle(this)">
    <label class="toggle-label w-form-label" for="Toggle-Switch"></label>
    <div class="toggle">
      <div class="toggle-active">
        <div class="active-overlay"></div>
        <div class="top-line"></div>
        <div class="bottom-line"></div>
      </div>
    </div>
  </div>

使用事件监听器

由于 onClick 不是首选,因此您应该像这样处理切换点击:https://jsfiddle.net/0p64mdsg/15/

<script>

document.getElementById("Toggle-Switch").addEventListener("click", toggle);

function toggle(source) {
  checkboxes = document.getElementsByName('inputLableautyNoLabeledCheckbox');
  alert('TEST2' + source);
  for (var i = 0, n = checkboxes.length; i < n; i++) {
    checkboxes[i].checked = document.getElementById("Toggle-Switch").checked;
  }
}

</script>

关于javascript - 选择全部 |使用切换按钮取消选择所有复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52257840/

相关文章:

javascript - Highcharts html 图例,点击了哪一列

html - 在 OS X 中构建和显示 html 文件

javascript - 传单:更新 map

javascript - 使用 Javascript 计算多个动态值的百分比变化

javascript - 如何从 jQuery Ajax 访问 JSON 元素

javascript - 代码jquery点击的按钮

javascript - 每当将链接鼠标悬停在任意页面上时调用函数?

javascript - 将 json 传递给 php 并从 php 接收数据的问题

javascript - 拖动时获取鼠标位置(JS + HTML5)

c# - 为 htmlAttributes 提供值,其中键在 MVC View 中的名称中包含破折号(例如 "data-bind")