Vue el-autocomplete遠(yuǎn)程搜索下拉框并實(shí)現(xiàn)自動(dòng)填充功能(推薦)
官網(wǎng)的demo獻(xiàn)上
在elementui Input輸入框中可以找到遠(yuǎn)程搜索組件,獲取服務(wù)端的數(shù)據(jù)

官網(wǎng)中的數(shù)據(jù)list都是寫在loadAll()中的,而如果我們此時(shí)要用到mock的數(shù)據(jù)就要在此基礎(chǔ)上對(duì)代碼進(jìn)行修改。
-mock數(shù)據(jù)的獲取-
我們要獲取遠(yuǎn)程mock中所有學(xué)生的學(xué)號(hào)信息,根據(jù)輸入的數(shù)據(jù)來遠(yuǎn)程查找目標(biāo),并且在選中該目標(biāo)后能夠自動(dòng)填充對(duì)應(yīng)的姓名、生日、手機(jī)等信息,實(shí)現(xiàn)快速獲取信息的功能,再也不用手動(dòng)一個(gè)個(gè)去輸入所有的數(shù)據(jù)啦~
在template中添加el-autocomplete
<el-autocomplete placeholder="請(qǐng)輸入studentID" v-model="form.studentID" :fetch-suggestions="querySearchAsync" @select="handleSelect" > </el-autocomplete>
在script中添加以下函數(shù)
//queryString 為在框中輸入的值
//cb 回調(diào)函數(shù),將處理好的數(shù)據(jù)推回
querySearchAsync(queryString, cb) {
var studentBasic = this.studentBasic;
console.log(studentBasic)
var results = queryString ? studentBasic.filter(this.createStateFilter(queryString)) : studentBasic;
console.log('results '+results)
clearTimeout(this.timeout);
this.timeout = setTimeout(() => {
cb(results);
}, 0.5*1000);
},
//根據(jù)輸入的字段進(jìn)行篩選
createStateFilter(queryString) {
return (state) => {
return (state.value.toString().toLowerCase().indexOf(queryString.toLowerCase()) === 0);
};
},
//將其他數(shù)據(jù)自動(dòng)補(bǔ)全,采用覆蓋的方法
handleSelect(item){
this.form.name = item.name;
this.form.studentID = item.value;
this.form.birth = item.birthday;
this.form.region = item.city;
this.form.phone = item.phone;
}
選中目標(biāo)學(xué)號(hào)以后自動(dòng)補(bǔ)全其他mock的數(shù)據(jù)
-
-踩坑點(diǎn)之value字段-
看了網(wǎng)上很多demo都說后臺(tái)獲取的數(shù)據(jù)對(duì)象必須有value關(guān)鍵字,因?yàn)閍utocomplete只識(shí)別value字段,這里有一個(gè)實(shí)現(xiàn)的小trick:
this.studentBasic= JSON.parse(JSON.stringify(this.list).replace(/studentID/g,"value"));
JSON.stringify() 方法是將一個(gè)JavaScript值(對(duì)象或者數(shù)組)轉(zhuǎn)換為一個(gè) JSON字符串,如果指定了replacer是一個(gè)函數(shù),則可以替換值,或者如果指定了replacer是一個(gè)數(shù)組,可選的僅包括指定的屬性。這樣我們就可以把自己的屬性都替換成value字段啦~cool
總結(jié)
以上所述是小編給大家介紹的Vue el-autocomplete遠(yuǎn)程搜索下拉框并實(shí)現(xiàn)自動(dòng)填充功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
用vue設(shè)計(jì)一個(gè)數(shù)據(jù)采集器
這篇文章主要介紹了如何用vue設(shè)計(jì)一個(gè)數(shù)據(jù)采集器,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下2021-04-04
vue組件文檔(.md)中如何自動(dòng)導(dǎo)入示例(.vue)詳解
這篇文章主要給大家介紹了關(guān)于vue組件文檔(.md)中如何自動(dòng)導(dǎo)入示例(.vue)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
vue3?keep-alive實(shí)現(xiàn)tab頁面緩存功能
如何在我們切換tab標(biāo)簽的時(shí)候,緩存標(biāo)簽最后操作的內(nèi)容,簡單來說就是每個(gè)標(biāo)簽頁中設(shè)置的比如搜索條件及結(jié)果、分頁、新增、編輯等數(shù)據(jù)在切換回來的時(shí)候還能保持原樣,這篇文章介紹vue3?keep-alive實(shí)現(xiàn)tab頁面緩存功能,感興趣的朋友一起看看吧2023-04-04
vue項(xiàng)目中如何將數(shù)據(jù)導(dǎo)出為word文檔
這篇文章主要介紹了vue項(xiàng)目中如何將數(shù)據(jù)導(dǎo)出為word文檔問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
Vue3使用v-if指令進(jìn)行條件渲染的實(shí)例代碼
條件渲染是根據(jù)條件的真假來有條件地渲染元素,在Vue.js 3.x中,常見的條件渲染包括使用v-if指令和v-show指令,本文講解使用v-if指令進(jìn)行條件渲染,需要的朋友可以參考下2024-03-03
vue 中常用操作數(shù)組的方法(forEach()和reduce())
文章介紹了JavaScript中常用的操作數(shù)組方法,包括forEach()和reduce(),forEach()用于遍歷數(shù)組并對(duì)每個(gè)元素執(zhí)行操作,而reduce()則用于遍歷數(shù)組并進(jìn)行累加等迭代操作,感興趣的朋友一起看看吧2025-03-03
一篇文章教會(huì)你部署vue項(xiàng)目到docker
在前端開發(fā)中,部署項(xiàng)目是我們經(jīng)常發(fā)生的事情,下面這篇文章主要給大家介紹了關(guān)于部署vue項(xiàng)目到docker的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
vue-treeselect無法點(diǎn)擊問題(點(diǎn)擊無法出現(xiàn)拉下菜單)
這篇文章主要介紹了vue-treeselect無法點(diǎn)擊問題(點(diǎn)擊無法出現(xiàn)拉下菜單),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
vue.js與后臺(tái)數(shù)據(jù)交互的實(shí)例講解
今天小編就為大家分享一篇vue.js與后臺(tái)數(shù)據(jù)交互的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08

