vue 多选框 checkbox 父到子传值
vue多选功能,
修改时选中的状态不能从当前组件中得到,从父组件中传过来。
这里 新增和修改封装了一个组件,在点击确定按钮后,会发送新增或修改请求,重新渲染页面。但是在点击【新增】/ 【修改】按钮时,不会发送请求,不会请求数据。所有的数据在页面进行渲染时即拿到(数据在父组件中)。即在点击修改按钮时,并不会请求数据,(所有数据在点击【确定】新增 / 修改 按钮成功后重新渲染页面时已经拿到)。想在修改的弹框里展示数据,需要将数据从父组件中传给子组件。
问题1 :
因为element-UI中对选框选中的值是name,没有id。而我们获取到选中的值后,是要将当前name的id传给后台。
解决:遍历数组,遍历选中的值,通过值(name) 对应 id
const that = this;
const departmentID = [];
this.department.forEach(function(v, i) { // 遍历数组
that.checkListValue.forEach(function(checked, index) { // 遍历选中的值
if (checked == v.name) {
departmentID.push(v.id); // 找到 id
that.dialog.data.departmentId = departmentID;
}
});
});
问题2 :
所有的数据都在父组件中的 【dialog】中,如下图
子组件中用到的数据都在 父组件传过来的 dialog中。使用时, 如下图
但是当多选框选中的值使用dialog的值时,如下图
在新增弹框中,选多选框时,选中一个会默认选中所有。(是因为新增时,多选框的值没有,使用父组件传来的值时,父组件传过来的是 null )。
后来新建一个数组,用来存选中的值,在点击确定新增时,直接把该值对应的id 赋值给【dialog】,如下图
因为所有的数据都是绑定的dialog的值,发送请求时,传dialog值即可。
这样解决了新增时选中一个即选中所有的问题,但是在修改弹框里 ,【checkListValue】为空数组。不能选中已有的数据。
即修改的弹框中多选框的值 只能用dialog的值。
因为在新增时,父组件传过来的是null,所以用v-if做判断。
在确定修改按钮时,将name对应的id赋值
其实不用 v-if 也能解决,而且更方便。
新增的弹框,多选框选中的值使用dialog的值时,选多选框时,选中一个会默认选中所有。(是因为新增时,父组件传过来的是 null )。
我只需把父组件传过来的值改成空数组 【】即可。这样子组件即可直接绑定 dialog的值。如下图:
vue 多选框 checkbox 父到子传值的更多相关文章
- EasyUI:combotree(树形下拉框)复选框选中父节点(子节点的状态也全部选中)输入框中只显示父节点的文本值
参考: https://blog.csdn.net/weixin_43236850/article/details/100320564
- js input复选框选中父级同时子级也选中
js实现复选框选中父级元素子级元素也选中,没有子级元素选中父级也不选中的效果 HTML <tr> <td> <label> <input name=" ...
- vue结合element-ui实现二级复选框checkbox
vue结合element-ui实现二级复选框checkbox 话不多说先上效果 交互:1.点击按钮全选,所有的checkbox全部选中:点击清空,所有的checkbox框都不选:点击确定获取选中的ch ...
- Vue复选框的全选
<!DOCTYPE html><html> <head> <meta charset="utf-8"> ...
- Android 单选按钮(RadioButton)和复选框(CheckBox)的使用
1.RadioButton (1)介绍 (2)单选按钮点击事件的用法 (3)RadioButton与RadioGroup配合使用实现单选题功能 (4)xml布局及使用 <?xml version ...
- css3美化复选框checkbox
两种美化效果如下图: 代码(html) <div id="main"> <h2 class="top_title">使用CSS3美化复 ...
- [原创]纯JS实现网页中多选复选框checkbox和单选radio的美化效果
图片素材: 最终效果图: <html><title> 纯JS实现网页中多选复选框checkbox和单选radio的美化效果</title><head>& ...
- 复选框(checkbox)、单选框(radiobox)的使用
复选框(checkbox).单选框(radiobox)的使用 复选框: HTML: // 复选框 <input type="checkbox" name="chec ...
- php 判断复选框checkbox是否被选中
php 判断复选框checkbox是否被选中 复选框checkbox在php表单提交中经常被使用到,本文章通过实例向大家介绍php如何判断复选框checkbox中的值是否被选中,需要的朋友可以参考 ...
随机推荐
- beautifhulsoup4的使用
Beautiful: - 基本使用 from bs4 import BeautifulSoup - 解析器: lxml, html.parser soup = Beautiful ...
- Springboot项目静态资源配置
springboot项目的静态资源配置网上有好多,说的也很详细 我今天出错是自定义了一个filter,在shiro里配置的/**,自定义filter 所以一直报302
- 用 GetEnvironmentVariable 获取常用系统环境变量
以前曾用 GetWindowsDirectory.GetSystemDirectory.GetTempPath 等函数获取系统常用文件夹; 也用过 SHGetSpecialFolderLocation ...
- 说下vue工程中代理配置proxy
这个代理配置不需要后台进行ngnix代理跳转了,前端可以做.在vue.config.js文件中进行配置,如下: module.exports = { publicPath: process.env.V ...
- 9、继续matlab数值分析
1.matlab拉格朗日插值 function yi=Lagrange(x,y,xi) %x为向量,全部的插值节点 %y为向量,插值节点处的函数值 %xi为标量或向量,被估计函数的自变量: %yi为x ...
- 使用cookie来做身份认证 转载https://www.cnblogs.com/sheldon-lou/p/9545726.html
文章是msdn的官方文档,链接在这里.其实也有中文的文档,这里还是想做一个记录. 文章有asp.net core 2.x 和1.x 版本,我这里就忽略1.x了. 下面先说几点额外的东西有助于理解. A ...
- windows下Docker安装MySQL
# docker 中下载 mysql docker pull mysql #启动 docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD ...
- python学习笔记:python操作redis
Redis 是一个高性能的key-value数据库.它支持存储的value类型包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈 ...
- jwt认证登录
配置文件:#服务配置 server: port: 9002 #spring配置 spring: #应用配置 application: name: ynhrm-system #指定服务名 #数据库连接池 ...
- BUUCTF RE部分题目wp
RE 1,easyre拖进ida,得到flag 2,helloworld 将文件拖入apk改之理,得到flag 3,xor拖进ida,就是简单异或,写脚本 glo=[0x66,0x0a,0x6b,0x ...