vue的el-select綁定的值無法選中el-option問題及解決
el-select綁定的值無法選中el-option問題
框架vue-element-ui中的select綁定值v-model無法自動(dòng)選中option的問題
代碼如下:
<template> ?<el-select v-model="formData.colorId" placeholder="選擇"> ? ?<el-option ? ? ?v-for="item in colorOptions" ? ? ?:key="item.id" ? ? ?:label="item.name" ? ? ?:value="item.id"> ? ?</el-option> ?</el-select> <template>
<script>
colors = {
?"1": "黃",
?"2": "紅",
?"3": "綠"
}
export default {
? data() {
? ?? ?return {
? ?? ??? ?formData:{ colorId: 2 },
? ?? ??? ?colorOptions: obj2Array(colors)
?? ?}
? }
}
function obj2Array(obj){
? const arr = []
? for(let key in obj){
? ? arr.push({id:key, name: obj[key]})
? }
? return arr
}
</script>發(fā)現(xiàn)無法自動(dòng)選中紅色,而是直接顯示2,這是什么問題呢。
原來是obj2Array這個(gè)方法的問題,在重構(gòu)為數(shù)組時(shí),key是字符直接給到id,而colorId是數(shù)值,所以無法匹配。
正解:
function obj2Array(obj){
? const arr = []
? for(let key in obj){
? ? arr.push({id:Number(key), name: obj[key]})
? }
? return arr
}
vue el-select 2個(gè)下拉框聯(lián)動(dòng)時(shí)產(chǎn)生的無法選中值的bug
問題描述
做項(xiàng)目時(shí)用了2個(gè)el-select下拉框,一個(gè)下拉框選擇學(xué)校,一個(gè)下拉框選擇專業(yè),專業(yè)的數(shù)據(jù)源是根據(jù)學(xué)校的選擇來動(dòng)態(tài)改變的,由于后臺(tái)沒有寫成樹的形式,所以寫了2個(gè)下拉框進(jìn)行聯(lián)動(dòng)。
這里就有一個(gè)問題:學(xué)校改變后,雖然專業(yè)的數(shù)據(jù)源發(fā)生了變化,但是原來的專業(yè)綁定值并沒有清空,所以我在此就手動(dòng)清空了專業(yè)的值。
這是就有了這個(gè)奇怪的問題,學(xué)校改變后,原來的專業(yè)綁定值雖然清空了,但是卻無法選中了。
解決辦法1:使用 this.$set 來設(shè)置變量的值,讓視圖重新render
在學(xué)校的值改變時(shí),清空原專業(yè)值時(shí)用$set(),而不是直接賦值為空。
schoolChange (value) {
? ? // this.form.specialtyid=''
? ? this.$set(this.form, 'specialtyid', '')
? ??
? ? if (!value) {
? ? ? this.specialtyList = []
? ? } else {
? ? ? this.GetspecialtynList(value)
? ? }
},解決辦法2:直接聲明specialtyid變量
另一種解決辦法,就是將specialtyid的值,直接寫到data里,el-select綁定值也直接使用specialtyid,而不是使用form.specialtyid,此時(shí)再清空specialtyid的值就可以直接賦值了
解決辦法3:給專業(yè)的el-select添加@change事件
? ? ? ? <el-select v-model="form.specialtyid" @change="specChange">
? ? ? ? ? ? <el-option
? ? ? ? ? ? ? v-for="item in specialtyList"
? ? ? ? ? ? ? :label="item.orgname"
? ? ? ? ? ? ? :key="item.orgid"
? ? ? ? ? ? ? :value="item.orgid"
? ? ? ? ? ? ></el-option>
? ? ? ? </el-select>
? ??
? ? ? ? specChange () {
? ? ? ? ? //強(qiáng)制刷新
? ? ? ? ? this.$forceUpdate()
? ? ? ? },以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
VueCli生產(chǎn)環(huán)境打包部署跨域失敗的解決
這篇文章主要介紹了VueCli生產(chǎn)環(huán)境打包部署跨域失敗的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11
基于Vue+ElementUI的省市區(qū)地址選擇通用組件
這篇文章主要介紹了基于Vue+ElementUI的省市區(qū)地址選擇通用組件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
基于vue2.0+vuex的日期選擇組件功能實(shí)現(xiàn)
這篇文章主要介紹了 基于vue2.0+vuex的日期選擇組件功能實(shí)現(xiàn),詳細(xì)介紹了使用vue編寫的日期組件,,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-03-03
Vue2.0實(shí)現(xiàn)調(diào)用攝像頭進(jìn)行拍照功能 exif.js實(shí)現(xiàn)圖片上傳功能
這篇文章主要為大家詳細(xì)介紹了Vue2.0實(shí)現(xiàn)調(diào)用攝像頭進(jìn)行拍照功能,以及圖片上傳功能引用exif.js,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
關(guān)于vue狀態(tài)過渡transition不起作用的原因解決
這篇文章主要介紹了關(guān)于vue狀態(tài)過渡transition不起作用的原因解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-04-04
Vue 3項(xiàng)目如何安裝Element-Plus
Element Plus 是一個(gè)基于 Vue 3 的現(xiàn)代前端UI框架,它旨在提升開發(fā)體驗(yàn),并為開發(fā)者提供高效、優(yōu)雅的組件,在本文中將詳細(xì)介紹如何在 Vue 3 項(xiàng)目中安裝 Element Plus,感興趣的朋友一起看看吧2024-07-07
vue實(shí)現(xiàn)動(dòng)態(tài)添加元素(可刪除)
文章介紹了如何在Vue中動(dòng)態(tài)添加和刪除元素,通過使用Vue的響應(yīng)式數(shù)據(jù)和v-for指令,可以輕松地實(shí)現(xiàn)這一功能,文章還詳細(xì)講解了如何處理元素的添加和刪除事件,以及如何更新視圖以反映這些變化2024-12-12

