ant-design-vue中的select选择器,对输入值的进行筛选操作


Posted in Javascript onOctober 24, 2020

今天在设计一个标签(采用的是Select 选择器中的标签那一个)时,从后台返回了数据,但是在输入值时,没有对回显的值进行过滤匹配,通过查看官方文档,解决了这个问题。

记在这里方便以后查看。

ant-design-vue中的select选择器,对输入值的进行筛选操作

<a-form-item label='标签' v-bind="formItemLayout">
  <a-select
   mode="tags"
   :allowClear="true"
   :filterOption="filterOption"
   style="width: 100%"
   v-decorator="['tag',{rules: [{ required: true, message: '请选择标签' }]}]">
   <a-select-option v-for="t in tags" :key="t.id.toString()">{{t.tagName}}</a-select-option>
  </a-select>
</a-form-item>

methods中:

filterOption(input, option) {
  return (
   option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
  );
},

其中对于过滤起作用的是filterOption

官网上对其的解释:

ant-design-vue中的select选择器,对输入值的进行筛选操作

补充知识:ant design的Select下拉选择器 带搜索功能

在做项目的过程中,可能会遇到 下拉框内容较多,为了方便用户选择加入检索功能。

用法

利用ant design 中的select选择器完成此功能。

首先 要获取下拉选择内容数据,和普通下拉选的数据结构一致,数组对象 键值对。

然后把数据渲染到选择器中,我在项目中 遇到的是数据较多,但是为了防止数据下拉较长,后端返回数据做了类似分页处理,每次返回10条数据,那在获取初始数据时其实就获取了十条数据。

把数据放到一个空数组中,然后渲染到选择器中。

componentDidMount() {
 const { dispatch } = this.props;
 dispatch({
  type: 'project/searchProject',
  payload: { },
  callback: (res) => {
  this.setState({
   data: res.data
  })
  }
 });
 }
const children = [];
data.forEach(d => {
 children.push(<Option key={d.id}>{d.name}</Option>);
})
<Select
 showSearch
 allowClear
 labelInValue
 placeholder="请选择项目"
 optionFilterProp="children"
 onSearch={this.handleSearch}
 onChange={this.handleChange}
 filterOption={(input, option) =>
  option.props.children[0].toLowerCase().indexOf(input.toLowerCase()) >= 0
 }
 >
 {children}
 </Select>

那在触发搜索功能的时候,其实只是搜索了10条内容,那在onSearch中还有去请求其他数据。

handleSearch = value => {
 const { dispatch } = this.props;
 dispatch({
  type: 'project/searchProject',
  payload: {
  q: value
  },
  callback: (res) => {
  this.setState({
   data: res.data
  })
  }
 });
};

如果输错了搜索内容,往回删除修改的时候还需要去请求一次数据,触发了onChange事件。

handleChange = value => {
 const { dispatch } = this.props;
 dispatch({
  type: 'project/searchProject',
  callback: (res) => {
  this.setState({
   data: res.data
  })
  }
 });
 };

现在功能完成了。

效果图如下:

ant-design-vue中的select选择器,对输入值的进行筛选操作

以上这篇ant-design-vue中的select选择器,对输入值的进行筛选操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
validator验证控件使用代码
Nov 23 Javascript
JavaScript中链式调用之研习
Apr 07 Javascript
如何使Chrome控制台支持多行js模式——意外发现
Jun 13 Javascript
JS实现让网页背景图片斜向移动的方法
Feb 25 Javascript
基于jquery实现左右按钮点击的图片切换效果
Jan 27 Javascript
JS HTML5实现拖拽移动列表效果
Aug 27 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
Jul 28 Javascript
javascript 分号总结及详细介绍
Sep 24 Javascript
轻松理解JavaScript之AJAX
Mar 15 Javascript
原生javascript实现分页效果
Apr 21 Javascript
vue插件实现v-model功能
Sep 10 Javascript
JS获取月的第几周和年的第几周实例代码
Dec 05 Javascript
jquery插件懒加载的示例
Oct 24 #jQuery
在react-antd中弹出层form内容传递给父组件的操作
Oct 24 #Javascript
Antd下拉选择,自动匹配功能的实现
Oct 24 #Javascript
在react项目中使用antd的form组件,动态设置input框的值
Oct 24 #Javascript
Vue-Ant Design Vue-普通及自定义校验实例
Oct 24 #Javascript
解决vue打包报错Unexpected token: punc的问题
Oct 24 #Javascript
解决vue项目axios每次请求session不一致的问题
Oct 24 #Javascript
You might like
最新的php 文件上传模型,支持多文件上传
2009/08/13 PHP
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
Laravel 之url参数,获取路由参数的例子
2019/10/21 PHP
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
jquery实现不包含当前项的选择器实例
2015/06/25 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
了解JavaScript表单操作和表单域
2019/05/27 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
Python实现的生成格雷码功能示例
2018/01/24 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
Python Numpy计算各类距离的方法
2019/07/05 Python
详解用python生成随机数的几种方法
2019/08/04 Python
python实现超市商品销售管理系统
2019/10/25 Python
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
简述安装Slackware Linux系统的过程
2012/05/08 面试题
电子信息专业学生自荐信
2013/11/09 职场文书
银行实习生的自我评价
2013/12/09 职场文书
教师的实习自我鉴定
2013/12/17 职场文书
庆七一活动方案
2014/01/25 职场文书
库房管理员岗位职责
2014/03/09 职场文书
土建施工员岗位职责
2014/07/16 职场文书
幼儿生日活动方案
2014/08/27 职场文书
三严三实对照检查材料
2014/09/22 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
银行求职信范文
2019/05/13 职场文书
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL
Python字符串格式化方式
2022/04/07 Python