最近项目做的后台管理系统中,要求实现一个支持拼音、首字母和汉字模糊搜索的下拉框。项目是用vue iview做的,iview中有select远程搜索。但是,iview框架也有弊病就是会将输入框中的输入值进行过滤,如果你搜英文的,ok是可以实现的,看人家例子准备的数据也是英文的,但咱要求的是中文也能搜索,首字母和拼音都支持。

输入中文,因为框架中是根据value取值的,所以你输入的拼音和首字母在后台返回的数据中是没有的,所以就过滤掉了。后台是支持模糊搜索的,搜索的数据也是可以返回的,但就是赋不上值。想了好多办法都行不通,感觉这个框架有点鸡肋,也不支持拼音首字母搜索,以为只有改源码才能实现。后来终于想出了办法,虽然有点麻烦,但只要能实现了就行,你说呢?

先看效果图

支持汉字:

支持拼音:

支持首字母:

解决思路

在新建的页面中:在远程搜索的方法里,后台返回的数据时给做下处理,把返回的value值后边拼接一个特殊字符,再拼接上你输入框输入的值,这样因为value里含有你输入的值就不会被过滤掉,因而就能赋上值了。

校验规则修改:如果有表单校验,要在校验时改变校验规则type: 'string',因为拼接完就是字符串了。

submit提交方法中:在submit提交表单方法里再做下处理,把刚才拼接的字符串,用特殊字符处理成数组取第1位就是原来的value值了,不过是字符串形式了,要让后台接收字符串形式的。

编辑回显页面中:要让后台配合返回的id值是字符串形式,返回的下拉列表中每个数组对象的value值也是字符串形式的。如果后台不改,只能自己再循环遍历处理成字符串。

是不是说的一脸懵逼,直接上图看的更清楚些:

页面结构

校验规则

单选下拉框type是字符串,多选type要求是array类型

远程搜索方法

这个地方单选框和多选框处理方法一样

表单submit提交方法的传参中

单选下拉框把选的v-model里的值(这里绑定的是value值)进行处理,把刚才拼接的特殊字符和输入值去掉,取前面的id值

多选因为取到的v-model值是一个数组,所以要用map函数来把每一项都处理一下

以上就步骤就实现了拼音、首字母(不分大小写)和汉字的搜索,但必须注意前提是需要后台支持这些类型的搜索且能正确返回数据

因为我编辑和新建用的是同一个页面所以还要编辑回显数据:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持Devmax。

vue+iview如何实现拼音、首字母、汉字模糊搜索的更多相关文章

  1. iview+vue实现导入EXCEL预览功能

    这篇文章主要为大家详细介绍了iview+vue实现导入EXCEL预览功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. vue+iview实现手机号分段输入框

    这篇文章主要为大家详细介绍了vue+iview实现手机号分段输入框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. PHP基于自定义函数实现的汉字转拼音功能实例

    这篇文章主要介绍了PHP基于自定义函数实现的汉字转拼音功能,涉及php表单及字符串编码转换、遍历等相关操作技巧,需要的朋友可以参考下

  4. 基于Python实现简单的汉字拼音转换工具

    将汉字转为拼音,可以用于批量汉字注音、文字排序、拼音检索文字等常见场景。现在互联网上有许多拼音转换工具,基于Python的开源模块也不少,本文将利用pypinyin模块制作简单的汉字拼音转换工具,感兴趣的可以了解一下

  5. vue+iview Table表格多选切换分页保持勾选状态

    这篇文章主要为大家详细介绍了vue+iview Table表格多选切换分页保持勾选状态,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  6. php实现数组按拼音顺序排序的方法 原创

    这篇文章主要介绍了php实现数组按拼音顺序排序的方法,涉及php汉字与拼音的转换及数组遍历、排序相关操作技巧,需要的朋友可以参考下

  7. Vue项目中使用iView组件库设置样式不生效的解决方案

    这篇文章主要介绍了Vue项目中使用iView组件库设置样式不生效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  8. PHP自定义函数获取汉字首字母的方法

    这篇文章主要介绍了PHP自定义函数获取汉字首字母的方法,涉及php针对汉字的编码转换与判断操作相关技巧,非常简单实用,需要的朋友可以参考下

  9. php实现姓名根据首字母排序的类与方法(实例代码)

    这篇文章主要介绍了php实现姓名根据首字母排序的类与方法,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧

  10. vue对插件(iview,elementui,treeselect)样式的局部修改方式

    这篇文章主要介绍了vue对插件(iview,elementui,treeselect)样式的局部修改方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部