[经验分享] VUE 下 IView 框架 如何让 Select 输入框既可以输入过滤选项结果,同时也可以正常像 input 一样键入字符串

本贴最后更新于 2026 天前,其中的信息可能已经事过境迁

selectInput.gif

IView 框架 Select 标签

 上面 Gif 图可以看到 如果想要得到搜索引擎那样,既可以联想过滤结果,又可以输入自己的想要输入的文本,但是框架所限根本没办法去键入没有经过匹配结果的内容(这个需求在我刚入行的时候,曾经一度没办法解决,问老大也没有办法解决,最终只能无耻地使用 placeholder 来强行留住输入结果),直到最近两天才真正解决(果然前端这种东西还是要有自己的想法,否则只能被人带着跑)

 解决办法是用使用 [AutoComplete 自动完成(点击跳转)] (https://www.iviewui.com/components/auto-complete)

selectInputOption.gif

 我们这里只要改造下面的 option 的内容 将自动补全 @qq.com 邮箱内容就可以实现将后端取出来的 json 集合 赋值到 data 里,这里补上原来官方的 Demo 代码:

<template> <AutoComplete v-model="value2" @on-search="handleSearch2" placeholder="input here" style="width:200px"> <Option v-for="item in data2" :value="item" :key="item">{{ item }} </Option> </AutoComplete> </template> <script> export default { data () { return { value2: '', data2: [] } }, methods: { handleSearch2 (value) { this.data2 = !value || value.indexOf('@') >= 0 ? [] : [ value + '@qq.com', value + '@sina.com', value + '@163.com' ]; } } } </script>

修改后的代码:

<AutoComplete v-model="accidentModel.prjName" placeholder="请选择或输入项目名称" @on-change="onQueryChange" @on-select="onSelectFun" @on-clear="onClearFun" clearable remote style="width: 522px"> <Option v-for="(option, index) in prjItems" :value="option.prjNum" :key="index">{{option.prjName}}</Option> </AutoComplete> <script> export default { method: { onSelectFun (value) { let obj = this.prjItemsInit.filter(item => item.prjNum === value) setTimeout(() => { this.accidentModel.prjNum = obj[0].prjNum this.accidentModel.prjName = obj[0].prjName }, 20) }, onQueryChange (query) { if (query) { const list = this.prjItemsInit.map(item => { return { prjNum: item.prjNum, prjName: item.prjName } }) this.prjItems = list.filter(item => item.prjName.toLowerCase().indexOf(query.toLowerCase()) > -1) } else { this.prjItems = this.prjItemsInit } }, } } </script>

代码部分乱了点,也没啥办法,下了班之后就急匆匆回家,然后连接了下公司 vpn,晚上部署项目吃饭洗碗也就没啥时间管博客的内容了,现在睡前又临时用 ipad 改了下,结果发现 safari 某种程度上也确实挺反人类的
...... 总体上还行,啥时候有空就回来改改排版吧。(如果有人需要看的话,否则我连注释都懒得写 大概就这样了吧 ~

  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    267 引用 • 666 回帖 • 1 关注
  • iView
    5 引用
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    245 引用 • 1338 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 499 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    409 引用 • 3585 回帖 • 1 关注
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 617 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 488 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    286 引用 • 248 回帖 • 20 关注
  • Anytype
    3 引用 • 31 回帖 • 13 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    9288 引用 • 42238 回帖 • 115 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 233 回帖
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    267 引用 • 666 回帖 • 1 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    125 引用 • 585 回帖
  • Excel
    31 引用 • 28 回帖 • 1 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    124 引用 • 74 回帖
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 378 关注
  • 安全

    安全永远都不是一个小问题。

    203 引用 • 816 回帖 • 1 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 175 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    21 引用 • 245 回帖 • 232 关注
  • 996
    13 引用 • 200 回帖 • 1 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 4 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 1 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 415 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    945 引用 • 1460 回帖 • 1 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 74 关注
  • OpenCV
    15 引用 • 36 回帖 • 1 关注
  • Visio
    1 引用 • 2 回帖