我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript定义简单的页面复选框实现全选操作

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript定义简单的页面复选框实现全选操作

1. 效果演示

myflie21.gif

2. 弹窗代码

<el-dialog title="分配角色" :visible.sync="dialogRoleVisible">
  <el-form label-width="80px">
    <el-form-item label="用户名">
      <el-input disabled :value="sysUser.username"></el-input>
    </el-form-item>
    <el-form-item label="角色列表">
      <el-checkbox v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
      <div style="margin: 15px 0;"></div>
      <el-checkbox-group v-model="originalRoleList" @change="handleCheckedChange">
        <el-checkbox v-for="role in allRoles" :key="role.id" :label="role.id">{{role.roleName}}</el-checkbox>
      </el-checkbox-group>
    </el-form-item>
  </el-form>
  <div slot="footer">
    <el-button type="primary" @click="assignRole" size="small">保存</el-button>
    <el-button @click="dialogRoleVisible = false" size="small">取消</el-button>
  </div>
</el-dialog>

这里的每个复选框绑定每个角色的 id 值

3. 变量阐述

  • originalRoleList 存放从后端获取到的当前员工对应的角色id数组
  • allRoles 存放获取到的所有角色列表,用于页面渲染
  • checkAll bool值,true代表当前选中全选,false代表没有
  • allRolesId 根据所有角色获取到的所有角色 id

4. 实现逻辑

为了提升用户体验,allRolesallRolesId两个变量都是在页面渲染之前获得,即通过 created 函数实现

created() {
    this.fetchData() //刷新数据
    this.getAllRoles() 
},

通过调用后端提供的getRoles()方法来获取到数据库中所有的角色集合,然后通过遍历该集合获取到所有角色的id数组

getAllRoles(){
  api_r.getRoles().then(response => {
    this.allRoles = response.data;
    //获取所有的id集合
    for(let i=0;i<this.allRoles.length;i++){
      this.allRolesId[i] = this.allRoles[i].id
    }
  })
},

接下来就是本篇文章的重头戏,全选功能实现
由于originalRoleList是通过 v-model 双向绑定,所以我们只需在点击全选按钮时更换当前originalRoleList中的值就好了

handleCheckAllChange(){
    //在每一次点击时通过三目运算符判断
  this.checkAll === false ? true : false
  if(this.checkAll)
    this.originalRoleList = this.allRolesId
  else
    this.originalRoleList = []  
},

解决完上述问题后,在调试中发现 在全选按钮选中的情况下,取消其他子选项并没有取消全选,所以此时我们应该在子按钮的 @change 事件中做相应的逻辑完善,即简单判断当前角色的idList是否于全选状态下的idList长度相等即可

handleCheckAllChange(){
    //在每一次点击时通过三目运算符判断
  this.checkAll === false ? true : false
  if(this.checkAll)
    this.originalRoleList = this.allRolesId
  else
    this.originalRoleList = []  
},

以上就是简单的页面复选框中实现全选操作。而对于点击保存按钮以后与后端交互的逻辑这里就不细述,其实也就是把当前的originalRoleList传回去,后端通过比较新的idList和旧的idList,多的增,少的删?

到此这篇关于JavaScript定义简单的页面复选框实现全选操作的文章就介绍到这了,更多相关JavaScript全选操作内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript定义简单的页面复选框实现全选操作

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JavaScript定义简单的页面复选框实现全选操作

本文主要介绍了JavaScript定义简单的页面复选框实现全选操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-18

编程热搜

目录