JS实现勾选全部复选框和不全选复选框
前言
在一些后台管理系统里面,针对全选,复选框是一个很常见的操作,复选框可以执行多项选择的一种控件,有时,为了方便用户选中所有的复选框,网页界面
会提供一个选中所有复选框的功能,怎么实现一个复选框全部被选中的效果呢
示例效果
allcheckbox原生Js
实现全选的效果,复选框是否被勾选,是由它的checked
属性决定的,因此,实现本例效果的关键就是找到所有对应的复选框,然后将其它的checked
属性设置为true
或false
实现全选或全不选
如下实现一个简易的全选功能
-
// 选择所有函数
-
function checkAll(c) {
-
var arr = document.getElementsByTagName("myname");
-
if(c) {
-
// 遍历所有的复选框
-
for(var i = 0;i<arr.length;i ) {
-
arr[i].checked = true; // 选中
-
}
-
}else {
-
// 遍历所有的复选框
-
for(var i = 0;i<arr.length;i ) {
-
arr[i].checked = false; // 不选中
-
}
-
}
-
}
如下是html
-
<input type="checkbox" name="mayall" onclick="checkAll(this.checked)" />全选<br />
-
<input type="checkbox" name="myname" />前端
-
<input type="checkbox" name="myname" />后端
-
<input type="checkbox" name="myname" />小程序
Vue版本实现
如下代码所示,像这种全选,复选框,我们往往在提交的时候,是需要将具体的参数值,传递给后端的,而并非一些UI组件示例库当中 实现一下效果,就完事了的,往往需要自己进行二次特殊处理的
以下是上面全选,复选的示例代码
-
<template>
-
<div class="wrap">
-
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
-
<div style="margin: 15px 0;"></div>
-
<el-checkbox-group v-model="checkedLanNames" @change="handleCheckedlanguagesChange">
-
<el-checkbox v-for="lan in checkedLanOptions" :label="lan.type" :key="lan.name">{{lan.name}}</el-checkbox>
-
</el-checkbox-group>
-
</div>
-
</template>
-
-
<script>
-
export default {
-
name: 'checkedAll',
-
data() {
-
return {
-
checkAll: true, // 默认全选,true表示全选,false,不全选
-
checkedLanNames: [], // 绑定默认选中
-
type: "", // 向后端传的code字符串
-
languages: [
-
{
-
type:'1',
-
name: "前端"
-
},
-
{
-
type:'2',
-
name: "后端"
-
},
-
{
-
type:'3',
-
name: "小程序"
-
},
-
{
-
type:'4',
-
name: "云开发"
-
},
-
],
-
isIndeterminate: true
-
};
-
},
-
-
mounted () {
-
this.checkedLanNames = this.languages.map(item => item.type);
-
},
-
-
computed: {
-
checkedLanOptions() {
-
return this.languages;
-
}
-
},
-
-
methods: {
-
handleCheckAllChange(val) {
-
//console.log("全选", val); // val就是v-model绑定的值,即this.checkAll
-
if (this.checkAll) {
-
// 当全选被选中的时候,循环遍历源数据,把数据的每一项加入到默认选中的数组中区
-
this.checkedLanNames = this.languages.map((item) => item.type);
-
} else {
-
this.checkedLanNames = [];
-
this.type = "";
-
}
-
this.isIndeterminate = false;
-
},
-
handleCheckedlanguagesChange(value) {
-
// value就是v-model绑定的值,即this.checkedLanNames
-
console.log(value);
-
if (this.checkedLanNames.length == this.languages.length) {
-
this.checkAll = true;
-
} else {
-
this.checkAll = false;
-
}
-
this.type = this.checkedLanNames.join(","); // 用逗号拼接成字符串传递给后端
-
}
-
}
-
}
-
</script>
-
-
<style lang="scss" scoped>
-
.wrap {
-
text-align: center;
-
margin:20px 0 20px 0;
-
}
-
</style>
总结
实现全选与全不选在一些后台业务管理系统里面,是一个很常见基础的业务实现
全选与全不选的复选框是否被勾选,是由它的checked
属性决定的,checked
的属性值若为true
那么状态为选中,若为false
那么不选中
前端UI
显示,与具体要向后端传入的值,是需要与后端协商的,上面的type
也就是前后端协商的字段
前后端保持一致就可以了的,按照指定的数据格式传递给后端处理,后端需要什么样的数据格式,那就传具体的数据格式类型,比如,纯字符串,或数字等
点击左下角查看更多
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhghahac
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13