js表单全选和取消全选

简介: 这是一个全选和取消全选的功能,最上边的是全选框,下边的是单选框。1. 全选框选中,下边的所有单选框也都选中,全选框取消选中,下边的单选全不选中。如果全选选中情况下,下边的取消选中一个,哪上边的全选框就不选中。2. 第二就是下边的单选框一个一个选中,等到下边的单选框全部选中后,上边的全选框选中。同样取消一个单选,全选就不选中。

这是一个全选和取消全选的功能,最上边的是全选框,下边的是单选框。


1. 全选框选中,下边的所有单选框也都选中,全选框取消选中,下边的单选全不选中。如果全选选中情况下,下边的取消选中一个,哪上边的全选框就不选中。


2. 第二就是下边的单选框一个一个选中,等到下边的单选框全部选中后,上边的全选框选中。同样取消一个单选,全选就不选中。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style>
      .wrap{
        border: 1px solid black;
        width: 150px;
      }
      tr{
        border: 1px solid black;
      }
    </style>
  </head>
  <body>
    <div class="wrap">
      <table>
        <thead>
          <tr>
            <th>
              <input type="checkbox" id="j_cbALL">
            </th>
            <th>全选</th>
            <th></th>
          </tr>
        </thead>
        <tbody id="j_tbs">
          <tr>
            <td>
              <input type="checkbox">
            </td>
            <td>iPhone1</td>
            <td>3000</td>
          </tr>
          <tr>
            <td>
              <input type="checkbox">
            </td>
            <td>iPhone2</td>
            <td>4000</td>
          </tr>
          <tr>
            <td>
              <input type="checkbox">
            </td>
            <td>iPhone3</td>
            <td>5000</td>
          </tr>
        </tbody>
      </table>
    </div>
    <script>
            // 全选和取消全选做法:让下面所以复选框的checked属性(选中状态)跟随全选按钮即可
      var j_cbALL = document.getElementById('j_cbALL');
      var j_tbs = document.getElementById('j_tbs').getElementsByTagName('input'); // 下面的所有复选框
      j_cbALL.onclick = function(){
            // this.checked 它可以得到当前复选框的选中状态 如果是true就是选中,如果是false就是未选中
        for (var i = 0; i < j_tbs.length; i++){
          j_tbs[i].checked = this.checked;
        }
      }
            // 下面复选框需要全部选中,上面全选才能选中做法:给下面所以复选框绑定点击事件,
      for(var i = 0; i < j_tbs.length; i++){
        j_tbs[i].onclick = function(){
                    // flay 控制全选按钮是否选中
          var flay = true;
                    // 每次点击下面的复选框都要循环检查所有按钮是否全被选中
          for(var i = 0; i < j_tbs.length; i++){
            if(!j_tbs[i].checked){
              flay = false;
                            // 退出for循环,这样可以提高效率 因为只要有一个没选中,剩下的就不需要循环判断
                            break;
            }
          }
          j_cbALL.checked = flay;
        }
      }
    </script>
  </body>
</html>


相关文章
|
9天前
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
19 3
|
1月前
|
JavaScript 数据安全/隐私保护
2024了,你会使用原生js批量获取表单数据吗
2024了,你会使用原生js批量获取表单数据吗
47 4
|
1月前
|
JavaScript 前端开发 数据安全/隐私保护
前端技术分享:使用Vue.js构建响应式表单
【10月更文挑战第1天】前端技术分享:使用Vue.js构建响应式表单
|
2月前
|
移动开发 JavaScript 前端开发
js之操作表单 | 12-4
js之操作表单 | 12-4
|
2月前
|
移动开发 前端开发 JavaScript
JavaScript 表单
JavaScript 表单
28 9
|
2月前
|
人工智能 前端开发 JavaScript
react js 处理表单( form )的2个例子
react js 处理表单( form )的2个例子
|
3月前
|
大数据 数据处理 分布式计算
JSF 逆袭大数据江湖!看前端框架如何挑战数据处理极限?揭秘这场技术与勇气的较量!
【8月更文挑战第31天】在信息爆炸时代,大数据已成为企业和政府决策的关键。JavaServer Faces(JSF)作为标准的 Java Web 框架,如何与大数据技术结合,高效处理大规模数据集?本文探讨大数据的挑战与机遇,介绍 JSF 与 Hadoop、Apache Spark 等技术的融合,展示其实现高效数据存储和处理的潜力,并提供示例代码,助您构建强大的大数据系统。
46 0
|
3月前
|
Devops 持续交付 测试技术
JSF遇上DevOps:开发流程将迎巨变?一篇文章带你领略高效协同的魅力!
【8月更文挑战第31天】本文探讨了如何在JavaServer Faces(JSF)开发中融入DevOps文化,通过持续集成与部署、自动化测试、监控与日志记录及反馈机制,提升软件交付速度与质量。文中详细介绍了使用Jenkins进行自动化部署、JUnit与Selenium进行自动化测试、ELK Stack进行日志监控的具体方法,并强调了持续改进的重要性。
38 0
|
3月前
|
前端开发 微服务 API
微服务浪潮下的JSF革新:如何在分散式架构中构建统一而强大的Web界面
【8月更文挑战第31天】随着微服务架构的兴起,企业将应用拆分成小型、独立的服务以提高系统可维护性和可扩展性。本文探讨如何在微服务架构下构建和部署JavaServer Faces (JSF) 应用,通过RESTful服务实现前后端分离,提升灵活性和适应性。
59 0
|
3月前
|
JavaScript 前端开发 数据安全/隐私保护
Vue.js 表单处理技巧大揭秘!v-model 与自定义验证综合运用,打造高效表单处理体验!
【8月更文挑战第31天】Vue.js 是一款备受欢迎的前端框架,其表单处理功能强大且灵活。v-model 指令可实现双向数据绑定,简化表单元素值与 Vue 实例数据的同步过程;结合自定义验证规则,则能确保用户输入数据符合特定要求。无论是简单的单字段校验还是复杂的多字段验证,Vue.js 均提供了简洁有效的解决方案,有效提升了表单处理效率及用户体验。通过综合运用 v-model 和自定义验证,开发者能够实时反馈错误信息并控制表单状态,从而增强应用的交互性与可靠性。
58 0