這篇文章主要介紹了vue 簡單自動補全的輸入框的範例,現在分享給大家,也給大家做個參考。
實作一個輸入框,輸入資訊後顯示由後台傳回的數據,供使用者選擇,之前用的elm的元件,不過那個有點大。 。 。簡單的情況下自己實作一個也能滿足要求。 。 。應該吧。 。 。
主題包含一個input用來輸入,一個p用來展示數據,p裡面是資料項目item
當在input按下回車時,會根據資訊去後台獲取數據,如果用戶點擊了別的地方,input失去焦點,則提示的p也應該收起來
bug:
在blur事件中,如果直接將isShow設定為false會出問題,先失去焦點,顯示面板消失,所以你的點擊不會被監聽到。 。 。設定計時器,點擊後10ms後將面板收起來,問題解決。 。 。
顯示p將內容撐開,改變其他元件佈局,設定p的屬性,即可,高度設為0,z-index很大,就不會改變其他元件位置
height: 0; z-index: 999;
<template> <p class="container"> <input v-model="msg" @keyup.enter="search" class="msg" @blur="blur"/> <p class="select-panel"> <p v-show="isShow" v-for="w in words" class="select-item" @click="click_item(w)">{{w['content']}}</p> </p> </p> </template>
簡單實作程式碼
<template> <p class="container"> <input v-model="msg" @keyup.enter="search" class="msg" @blur="blur"/> <p class="select-panel"> <p v-show="isShow" v-for="w in words" class="select-item" @click="click_item(w)">{{w['content']}}</p> </p> </p> </template> <script> import {search_word} from "../api/word-api"; export default { name: "auto-complete", data() { return { msg: '', words: [], isShow: false } }, computed: {}, methods: { blur() { setTimeout(() => { this.isShow = false }, 200) }, async search() { console.log('search msg', this.msg) this.words = await search_word(this.msg) console.log(this.words) this.isShow = true }, click_item(w) { console.log('click word', w) this.$emit('add_word', w) } }, } </script>
上面是我整理給大家的,希望今後會對大家有幫助。
相關文章:
#以上是vue 簡單自動補全的輸入框的範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

在JavaScript中如何獲取原型鏈上函數的參數在JavaScript編程中,理解和操作原型鏈上的函數參數是常見且重要的任�...

在微信小程序web-view中使用Vue.js動態style位移失效的原因分析在使用Vue.js...

在Tampermonkey中如何對多個鏈接進行並發GET請求並依次判斷返回結果?在Tampermonkey腳本中,我們經常需要對多個鏈...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Linux新版
SublimeText3 Linux最新版

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版
中文版,非常好用

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。