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 &amp;&amp;和||运算法的另类使用技巧
Nov 28 Javascript
动态标签 悬停效果 延迟加载示例代码
Nov 21 Javascript
Bootstrap每天必学之前端开发框架
Nov 19 Javascript
jquery ajax分页插件的简单实现
Jan 27 Javascript
jQuery实现立体式数字动态增加(animate方法)
Dec 21 Javascript
微信小程序开发(一) 微信登录流程详解
Jan 11 Javascript
使用vue.js写一个tab选项卡效果
Mar 25 Javascript
解析vue中的$mount
Dec 21 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
May 08 Javascript
在vue项目中优雅的使用SVG的方法实例详解
Dec 03 Javascript
javascript canvas检测小球碰撞
Apr 17 Javascript
vue开发简单上传图片功能
Jun 30 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防盗链代码实例
2014/08/27 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
cakephp常见知识点汇总
2017/02/24 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
python multiprocessing多进程变量共享与加锁的实现
2019/10/02 Python
Python tkinter模版代码实例
2020/02/05 Python
keras在构建LSTM模型时对变长序列的处理操作
2020/06/29 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
2014年圣诞节倒计时网页的制作过程
2014/12/05 HTML / CSS
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
非常详细的C#面试题集
2016/07/13 面试题
青年标兵事迹材料
2014/08/16 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
个人委托函范文
2015/01/29 职场文书
世界遗产导游词
2015/02/13 职场文书
基督教追悼会答谢词
2015/09/29 职场文书
2016年五一劳动节专题校园广播稿
2015/12/17 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
Pygame如何使用精灵和碰撞检测
2021/11/17 Python
Python保存并浏览用户的历史记录
2022/04/29 Python
Win Server2016远程桌面如何允许多用户同时登录
2022/06/10 Servers