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 解析后的xml对象的读取方法细解
Jul 25 Javascript
DIV+CSS+JS不间断横向滚动实现代码
Mar 19 Javascript
js实现图片在未加载完成前显示加载中字样
Sep 03 Javascript
使用jQuery实现星级评分代码分享
Dec 09 Javascript
c#程序员对TypeScript的认识过程
Jun 19 Javascript
详解handlebars+require基本使用方法
Dec 21 Javascript
原生Javascript插件开发实践
Jan 18 Javascript
简单易懂的天气插件(代码分享)
Feb 04 Javascript
TableSort.js表格排序插件使用方法详解
Feb 10 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
Jul 16 Javascript
layui之select的option叠加问题的解决方法
Mar 08 Javascript
Laravel admin实现消息提醒、播放音频功能
Jul 10 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中使用Oracle数据库(3)
2006/10/09 PHP
php preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
最佳JS代码编写的14条技巧
2011/01/09 Javascript
javascript模块化简单解析
2016/04/07 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
拖动时防止选中
2017/02/03 Javascript
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
2018/02/10 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
2018/12/10 jQuery
JS实现的贪吃蛇游戏完整实例
2019/01/18 Javascript
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
[08:40]Navi Vs Newbee
2018/06/07 DOTA
win与linux系统中python requests 安装
2016/12/04 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
Python 加密的实例详解
2017/10/09 Python
Python冲顶大会 快来答题!
2018/01/17 Python
Python帮你识破双11的套路
2019/11/11 Python
python绘制规则网络图形实例
2019/12/09 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
什么是python的id函数
2020/06/11 Python
浅析Python的命名空间与作用域
2020/11/25 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
介绍一下Linux文件的记录形式
2012/04/18 面试题
EJB timer的种类
2014/10/28 面试题
2014年大学生自我评价
2014/01/19 职场文书
关于期中考试的反思
2014/02/02 职场文书
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
化学工程专业求职信
2014/08/10 职场文书
孩子满月酒答谢词
2015/09/30 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python