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 相关文章推荐
JS类中定义原型方法的两种实现的区别
Mar 08 Javascript
js 数组实现一个类似ruby的迭代器
Oct 27 Javascript
javascript 广告后加载,加载完页面再加载广告
Nov 25 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
May 11 Javascript
AngularJs 弹出模态框(model)
Apr 07 Javascript
JS ES6多行字符串与连接字符串的表示方法
Apr 26 Javascript
vue.js 使用axios实现下载功能的示例
Mar 05 Javascript
JS获取月的第几周和年的第几周实例代码
Dec 05 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
Jun 13 Javascript
Node使用Selenium进行前端自动化操作的代码实现
Oct 10 Javascript
关于vue 结合原生js 解决echarts resize问题
Jul 26 Javascript
Vue单页面应用中实现Markdown渲染
Feb 14 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
php cookie 登录验证示例代码
2009/03/16 PHP
PHP 上传文件大小限制
2009/07/05 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
2011/12/29 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
PHP扩展框架之Yaf框架的安装与使用
2016/05/18 PHP
Laravel中任务调度console使用方法小结
2017/05/07 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
bootstrap栅格系统示例代码分享
2017/05/22 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
[10:18]2018DOTA2国际邀请赛寻真——找回自信的TNCPredator
2018/08/13 DOTA
python中的sort方法使用详解
2014/07/25 Python
Python之web模板应用
2017/12/26 Python
Python Json序列化与反序列化的示例
2018/01/31 Python
python爬取微信公众号文章
2018/08/31 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
python列表切片和嵌套列表取值操作详解
2020/02/27 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
介绍一下常见的木马种类
2014/11/15 面试题
小学生评语集锦
2014/04/18 职场文书
质量标语大全
2014/06/12 职场文书
商场营业员岗位职责
2015/04/14 职场文书
golang 实现菜单树的生成方式
2021/04/28 Golang
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP
浅析Python中的随机采样和概率分布
2021/12/06 Python