element-ui+vue-treeselect下拉框的校验过程

目录
  • element-ui+vue-treeselect下拉框的校验(ivew也适用)
  • vue-treeselect的插件使用

element-ui+vue-treeselect下拉框的校验(ivew也适用)

在项目开发中 使用了vue-treeselect的话,使用element-ui或者ivew自带的表单校验发现,trigger中blur和change均不生效,在选择了值之后验证依然存在

解决方法主要是使用vue-treeselect官网中api给出的事件中的input,在value改变后触发,将trigger设为blur

以下代码示例为ivew UI

		 <FormItem label="选择父级分类:" prop="classify">
	          <treeselect
	            style="width:250px"
	            v-model="formItem.classify"
	            :normalizer="normalizer"
	            :options="options"
	            @input="changeValue"
	            noOptionsText="暂无数据"
	            placeholder="请选择分类"
	          />
        </FormItem>
		<script>
		data(){
			return{
				// 表单验证规则
				 ruleValidate: {
				        classify: [
				          {
				            required: true,
				            type: "string",
				            message: "请选择分类",
				            trigger: "input" /*看这里*/
				          }
				        ]
			 		}
			}
		}

		// 方法
		methods:{
			changeValue() {
	     		 this.$refs["Form"].validateField("classify");
	   		 },
		}

		</script>

vue-treeselect的插件使用

vue-treeselect地址:https://www.vue-treeselect.cn/

使用@select监听树形下拉选中事件:

<template slot-scope="scope">
 <treeselect
    v-model="scope.row.departId"
    @select="departTreeSelected"
    :disable-branch-nodes="false"
    :show-count="false"
    :multiple="false"
    :options="departs"
    placeholder="请选择"/>
  </treeselect>
 </template>

在methods里定义函数接收参数node和instanceId

methods: {
	 //选中树形部门选项
    departTreeSelected(node,instanceId){
      let url = '/datas/staff/busiselect?departCode=' +  node.code;
      let _this = this;
      this.$http.get(url).then(res => {
        if(res.data.code==0){
          var datas = res.data.data;
          for(let item in datas) {
            //出差申请人数组
            _this.staffArr.push({
             value: item,
             label: datas[item].match(/(\S*)-/)[1] //截取'-'前面内容作为人员姓名
            })
            //职级数组
            _this.rankArr.push({
              value: item,
              rank: datas[item].match(/-(\S*)/)[1] //截取'-'后面内容作为职级id
            })
          }
        }
      })
      .catch(err => {
        return err;
      });
    },
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 详解element-ui设置下拉选择切换必填和非必填

    ➢ 需求 默认都是必选 下拉选择的时候 选择必填,活动名称为必填,需要校验和显示* 选择非必填,活动名称不做校验,隐藏* ➢ 初始校验规则 经测试,网上其他的方式都没有实现需求,动态切换rules中的required没有作用 因为按照以下的写法的话,element-ui在组件初始化后校验规则就定型了,切换也没用 rules: { name: [ { required: true, message: "请输入名称", trigger: "blur" } ], regi

  • 基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)

    前言 开发过程中遇到了一个需求,根据用户选择的联系方式,动态改变输入框的检验条件,并且整个表单是可以增加的 在线访问:动态表单校验 github(欢迎star): https://github.com/Mrblackant. .. 思考几个问题 1.整个表单是可新增的,所以要遍历生成: 2.联系方式(手机/座机)的切换,是要切换后边不同类型输入框还是只改变校验规则(本篇是动态改变校验规则) 实现 1.elementui的form表单实现校验的时候要给当前el-form-item加上prop属性,

  • Vue + Element-ui的下拉框el-select获取额外参数详解

    直接上代码吧~ <el-table-column label="用户类型" width="180"> <template slot-scope="scope"> <el-select v-model="scope.row.roleID" placeholder="请选择" @change="changeRole($event,scope)"> <

  • 解决VUE项目使用Element-ui 下拉组件的验证失效问题

    问题描述: 在使用Element-ui组件做项目开发时候有可能会使用下拉框组件,如果下拉框组件的option选项是使用v-if指令遍历的, 这样也没有问题,但是如果加上multiple属性,也就是可以多选 就会出现下拉框验证时失效问题. 问题现象: 如图所示,明明已经选择了选项,可是验证还是为空,因此不能提交请求 解决思路: 如果说找遍组件里的方法都无法获得我们适合使用的,那就要动用原生基本功了 console.log一下v-model在此组件上绑定的属性,你发现你绑定的字符串(一般情况下都是S

  • element-ui+vue-treeselect下拉框的校验过程

    目录 element-ui+vue-treeselect下拉框的校验(ivew也适用) vue-treeselect的插件使用 element-ui+vue-treeselect下拉框的校验(ivew也适用) 在项目开发中 使用了vue-treeselect的话,使用element-ui或者ivew自带的表单校验发现,trigger中blur和change均不生效,在选择了值之后验证依然存在 解决方法主要是使用vue-treeselect官网中api给出的事件中的input,在value改变后触

  • vue Treeselect下拉树只能选择第N级元素实现代码

    今天在项目中遇到一个需求,就是vue下拉树只能选择第三级选项,为了解决这个问题,查阅了官方文档 https://vue-treeselect.js.org/#disable-item-selection 然后看到isDisabled属性可以禁止选择,具体实现代码如下: <treeselect :disable-branch-nodes="true" :normalizer="normalizer" v-model="formData.goodsTyp

  • Vue 级联下拉框的设计与实现

    目录 1.数据库设计 2.前端页面 3.一个完整的demo ​ 在前端开发中,级联选择框是经常用到的,这样不仅可以增加用户输入的友好性,还能减少前后端交互的数据量.本文以elementUI为例,使用其余UI组件大致思想也都相同. 1.数据库设计 ​ 所有的相关数据皆可存在一张表中,这样数据就可以不受层级的限制. ​ 表结构可以参考如下建表SQL: CREATE TABLE `supplies_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, `categ

  • vue 通过下拉框组件学习vue中的父子通讯

    如果说vue组件化开发中第一步应该了解的是什么的话,那无疑是父子组件之间是如何实现通讯的(说白了就是父子组件中数据是如何传递的),只有理解了这一步,才能更好的开发组件 这里先提出两个关键词: props 与 emit : 写这个组件之前,先看看效果图: 组件开发分析: 既然是组件: 首先组件内部数据内容肯定是可变的(如上图中的"按时间排序"之类的),这必须由父组件传入(即父组件如何将数据传个父组件); 在选择了内容之后,如何将数据传出来(即子组件如何将数据传给父组件) 先写结构: 父组

  • vue实现下拉框二级联动效果的实例代码

    1.实现效果 2.后端返回的数据格式 "list": [ { "id": "1178214681118568449", "title": "后端开发", "children": [ { "id": "1178214681139539969", "title": "Java" }, { "id&quo

  • element ui表格实现下拉筛选功能

    本文实例为大家分享了element ui表格实现下拉筛选的具体代码,供大家参考,具体内容如下 1.default-sort中prop传入要排序的字段(接口返回或自己定义的数据).order代表排序,这里用到降序 2.filters对象中text代表页面中显示的筛选文字,value代表筛选用到的值,在方法中filterHandler用到 3.column 的 key,如果需要使用 filter-change 事件,则需要此属性标识是哪个 column 的筛选条件(绑定的是要对接口中排序的字段) 4

  • vue+elementUI下拉框回显问题及解决方式

    目录 vue elementUI下拉框回显问题 正确回显格式应该是这样 而回显的确实这个值的id vue下拉框回显映射 单选框 多选框 级联框 总结 vue elementUI下拉框回显问题 在开发过程中,总会做到修改功能,但是在修改回显的时候,发现下拉框始终回显的是id而不是文本 下面看案例 正确回显格式应该是这样 而回显的确实这个值的id 原因是因为在给select复制的时候没有重新渲染,一开始我的编辑回显方法是这样 // 编辑回显 edit() { // 通过选中id查询信息 axios.

  • Element input树型下拉框的实现代码

    1.效果图 1.1 input聚焦时显示下拉框,再次点击下拉框或点击其他处下拉框消失,主要靠z-index添加遮罩实现 1.2 实时过滤效果 2.代码 ( vue.js + element-ui ) 2.1 html <el-form :model="form" size="mini" > <el-row> <el-col :span='12'> <el-form-item label="会计主管" &g

  • vue Treeselect 树形下拉框:获取选中节点的ids和lables操作

    API: https://vue-treeselect.js.org/#events 1.ids: 即value 1.lable: 需要用到方法:@select(node,instanceId) 和 @deselect(node,instanceId) <template> <treeselect ref="DRHA_EFaultModeTree" v-model="DRHA_EFaultModeTree_value" :multiple=&quo

  • Vue使用枚举类型实现HTML下拉框步骤详解

    下拉框包含option中的Value和用来显示的选项, 一般后台都是使用的Value值,而不是显示在前台的选项 第一步: 编写下拉框需要的枚举类型 StatusEnum.java public enum StatusEnum { RED, YELLOW, GREEN } 第二步: 编写用来存放下拉框中对应的option中的Value和显示的选项 StatusDTO.java public class StatusDTO { private String code; private String

随机推荐