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 Base64编码和解码,实现URL参数传递。
Sep 18 Javascript
Jquery进度条插件 Progress Bar小问题解决
Jul 12 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
Aug 02 Javascript
javascript 循环调用示例介绍
Nov 20 Javascript
利用JS来控制键盘的上下左右键(示例代码)
Dec 14 Javascript
Bootstrap的图片轮播示例代码
Aug 31 Javascript
浅谈javascript中replace()方法
Nov 10 Javascript
基于angularjs实现图片放大镜效果
Aug 31 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
Jan 06 Javascript
vue绑定class与行间样式style详解
Aug 16 Javascript
基于ant design日期控件使用_仅月份的操作
Oct 27 Javascript
Vue+TypeScript中处理computed方式
Apr 02 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基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
Bootstrap CSS布局之列表
2016/12/15 Javascript
在vue项目中集成graphql(vue-ApolloClient)
2018/09/08 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
JS中数据结构之栈
2019/01/01 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
[58:23]LGD vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
python网页请求urllib2模块简单封装代码
2014/02/07 Python
python连接mysql调用存储过程示例
2014/03/05 Python
Python常用模块介绍
2014/11/21 Python
复习Python中的字符串知识点
2015/04/14 Python
详解Python命令行解析工具Argparse
2016/04/20 Python
Python 制作糗事百科爬虫实例
2016/09/22 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
python实现图片压缩代码实例
2019/08/12 Python
python实现ip地址的包含关系判断
2020/02/07 Python
使用Keras实现简单线性回归模型操作
2020/06/12 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
几个人围成一圈的问题
2013/09/26 面试题
电子商务专业实习生自我鉴定
2013/09/24 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
护士自我评价
2014/02/01 职场文书
医院护士工作检讨书
2014/10/26 职场文书
服务整改报告
2014/11/06 职场文书
开业典礼致辞
2015/07/29 职场文书
JavaScript中isPrototypeOf函数
2021/11/07 Javascript