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 相关文章推荐
语义化 H1 标签
Jan 14 Javascript
jQuery 行级解析读取XML文件(附源码)
Oct 12 Javascript
window.location.href中url中数据量太大时的解决方法
Dec 23 Javascript
Javascript让DEDECMS告别手写Tag
Sep 01 Javascript
JavaScript 学习笔记之操作符
Jan 14 Javascript
JS实现文字掉落效果的方法
May 06 Javascript
浅谈jquery.fn.extend与jquery.extend区别
Jul 13 Javascript
基于javascript制作微博发布栏效果
Apr 04 Javascript
基于node.js制作简单爬虫教程
Jun 29 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
Oct 09 Javascript
100行代码实现一个vue分页组功能
Nov 06 Javascript
js实现自定义右键菜单
May 18 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生成网页快照 不用COM不用扩展.
2010/02/11 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
php中define用法实例
2015/07/30 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
2012/02/07 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
js实现楼层导航功能
2017/02/23 Javascript
js实现添加删除表格(两种方法)
2017/04/27 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
Python列表生成器的循环技巧分享
2015/03/06 Python
Python调用C++程序的方法详解
2017/01/24 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
金士达面试非笔试
2012/03/14 面试题
酒店优秀员工事迹材料
2014/06/02 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
招商银行收入证明
2015/06/17 职场文书
新闻稿标题
2015/07/18 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书
nginx 配置指令之location使用详解
2022/05/25 Servers