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 相关文章推荐
javascript window对象属性整理
Oct 24 Javascript
JavaScript 面向对象的之私有成员和公开成员
May 04 Javascript
用AngularJS来实现监察表单按钮的禁用效果
Nov 02 Javascript
详解vue.js全局组件和局部组件
Apr 10 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
Oct 31 Javascript
Angular PWA使用的Demo示例
Jan 31 Javascript
Vue实现表格批量审核功能实例代码
May 28 Javascript
vue集成kindeditor富文本的实现示例代码
Jun 07 Javascript
Vue实现剪切板图片压缩功能
Feb 04 Javascript
微信小程序实现watch监听
Jun 04 Javascript
JS性能优化实现方法及优点进行
Aug 30 Javascript
vue @ ~ 相对路径 路径别名设置方式
Jun 05 Vue.js
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
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
Git命令之分支详解
2021/03/02 PHP
去除链接虚线全面分析总结
2006/08/15 Javascript
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
2015/03/02 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
nodejs中的异步编程知识点详解
2021/01/17 NodeJs
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
python实现dijkstra最短路由算法
2019/01/17 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
Django如何使用redis作为缓存
2020/05/21 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
计算机科学技术自荐信
2014/06/12 职场文书
七一建党节演讲稿
2014/09/11 职场文书
中职毕业生自我鉴定范文(3篇)
2014/09/28 职场文书
pandas数值排序的实现实例
2021/07/25 Python
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸
vue实现Toast组件轻提示
2022/04/10 Vue.js