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 父到子传值的更多相关文章

  1. EasyUI:combotree(树形下拉框)复选框选中父节点(子节点的状态也全部选中)输入框中只显示父节点的文本值

    参考: https://blog.csdn.net/weixin_43236850/article/details/100320564

  2. js input复选框选中父级同时子级也选中

    js实现复选框选中父级元素子级元素也选中,没有子级元素选中父级也不选中的效果 HTML <tr> <td> <label> <input name=" ...

  3. vue结合element-ui实现二级复选框checkbox

    vue结合element-ui实现二级复选框checkbox 话不多说先上效果 交互:1.点击按钮全选,所有的checkbox全部选中:点击清空,所有的checkbox框都不选:点击确定获取选中的ch ...

  4. Vue复选框的全选

    <!DOCTYPE html><html>    <head>        <meta charset="utf-8">      ...

  5. Android 单选按钮(RadioButton)和复选框(CheckBox)的使用

    1.RadioButton (1)介绍 (2)单选按钮点击事件的用法 (3)RadioButton与RadioGroup配合使用实现单选题功能 (4)xml布局及使用 <?xml version ...

  6. css3美化复选框checkbox

     两种美化效果如下图: 代码(html) <div id="main"> <h2 class="top_title">使用CSS3美化复 ...

  7. [原创]纯JS实现网页中多选复选框checkbox和单选radio的美化效果

    图片素材: 最终效果图: <html><title> 纯JS实现网页中多选复选框checkbox和单选radio的美化效果</title><head>& ...

  8. 复选框(checkbox)、单选框(radiobox)的使用

    复选框(checkbox).单选框(radiobox)的使用 复选框: HTML: // 复选框 <input type="checkbox" name="chec ...

  9. php 判断复选框checkbox是否被选中

    php 判断复选框checkbox是否被选中   复选框checkbox在php表单提交中经常被使用到,本文章通过实例向大家介绍php如何判断复选框checkbox中的值是否被选中,需要的朋友可以参考 ...

随机推荐

  1. Windows下Redis安装+可视化工具Redis Desktop Manager使用

    Redis是有名的NoSql数据库,一般Linux都会默认支持.但在Windows环境中,可能需要手动安装设置才能有效使用.这里就简单介绍一下Windows下Redis服务的安装方法,希望能够帮到你. ...

  2. Anaconda基本命令

    创建环境 conda create --name bunnies python=3 astroid babel 列出所有环境 conda info --envs 或 conda env list 克隆 ...

  3. SpringBoot搭建基于Apache Shiro+Redis的分布式Session共享功能

    我们在上一遍文档中已经完成了Shiro验证功能.(http://www.cnblogs.com/nbfujx/p/7773789.html),在此基础上我们将完成分布式Session共享功能. Red ...

  4. Database基础(三):SQL数据导入/导出、 操作表记录、查询及匹配条件

    一.SQL数据导入/导出 目标: 使用SQL语句完成下列导出.导入操作: 将/etc/passwd文件导入userdb库userlist表并给每条记录加编号 将userdb库userlist表中UID ...

  5. 使用vue完成一个分页效果

    基于 element-ui 分页组件实现分页效果 效果如下: 使用说明: 0.首先在头部引入需要的外部文件 1.从element官方网页中复制想要的组件代码直接放入body中 2.编写逻辑代码 3.完 ...

  6. VC++ 字符串操作学习总结

    vc++中各种字符串(转载) http://www.cnblogs.com/tomin/archive/2008/12/28/1364097.html CString ,BSTR ,LPCTSTR之间 ...

  7. python sum()函数的用法

    sum() 方法对系列进行求和计算.针对元组,列表.对字符串会报错 >>>sum([0,1,2]) 3 >>> sum((2, 3, 4), 1) # 元组计算总和 ...

  8. 原 Nginx网络架构实战学习笔记(七):nginx性能优化小总结

    文章目录 优化思路: 优化过程 Php-mysql的优化 Nginx+phjp+mysql+nginx 压力测试: 模拟 前0-10万是热数据, 10-20万是冷门数据 请求热数据 0-10,请求9次 ...

  9. python学习笔记:使用freeze命令迁移模块

    使用freeze 给所有模块搬家 导出安装模块的文档pip freeze > my_freeze.txt 或者指定地址pip freeze > e:\my_freeze.txt 在另一个环 ...

  10. 14.Jmeter聚合报告各项含义

    Aggregate Report 是 JMeter 常用的一个 Listener,中文为“聚合报告” Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Na ...