vue實現兩級select聯動+input賦值+select選項清空
更新時間:2024年08月28日 16:54:26 作者:迪爾~
這篇文章主要介紹了vue實現兩級select聯動+input賦值+select選項清空過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
vue兩級select聯動+input賦值+select選項清空
功能描述
根據select1的選項改變select2的選項,同時 根據select2的選項給input上的時間附上對應的值,當select1清空時將select2和input的值也進行清空
Java傳輸數據:
id(類型:Integer)dictKey(類型:String)dictValue(類型:String)dictTime(類型:Date)
時間用于對input賦值
(格式: (pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “Asia/Shanghai”))
<el-form-item label="課程類型:" prop="courseType">
<el-select v-model="form.courseType" clearable placeholder="請選擇" :validate-event="true" @change='getValue($event)'>
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="培訓名稱:" prop="courseId">
<el-select v-model="form.courseId" placeholder="請選擇培訓名稱(課題)" :validate-event="true" ref="vendorId" @change='getTitle'>
<el-option v-for="item in titleList" :key="item.id" :value="item.dictKey" :label="item.dictValue"></el-option>
</el-select>
</el-form-item>
<el-form-item label="參訓時間:" prop="trainingTime">
<el-date-picker :disabled="true" v-model="form.trainingTime" type="datetime" placeholder="選擇日期" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>- 效果圖:
因為時間是從后臺獲取的,所以設置為用戶無法修改

加入select中的數據
(該數據是在前臺加入的 select2是根據數據庫返回的數據而變化的)
return {
titleList: [],//課程類型
trainingTime:null,
trainingLocation:null,
options: [{
value: 'study',
label: '學習專題'
}, {
value: 'online',
label: '線上培訓'
}, {
value: 'offline',
label: '線下培訓'
}],
value:''
}
- 效果圖:

點擊事件
//獲取選項值 判斷是否有值 根據有無值是否調用鏈接
getValue(event){
//當event等于0時,可能有兩種情況
//1.剛進入頁面,select1沒有選中選項
//2.選完了,用戶將該選項數據清空了
//2情況如果只清除select1的值那么已選的select2和input的值都還在
//如果用戶保存了會造成數據錯誤 所以在清除select1的同時也要清除select2和input的值
if(event.length==0){
//清除select1的值
this.form.title=null
//清除select2中所有的選項和值
this.$set(this.form, 'courseId', '')
//清除input的值
this.form.trainingTime=null
}else if(event.length!=0){
//不為空時將根據select的選項進項數據查詢
dictApi.dictListByCode1(event).then(re => {
//根據this.titleList.length是否有值清除對應的值 和上面原因類似
if(this.titleList.length!=0){
this.$set(this.form, 'courseId', '')
this.form.trainingTime=null
this.titleList.length = 0;
this.form.title=null
}
//給titleList附上查詢后的返回值
this.titleList = re.response
})
}
},
getTitle(e) {
this.titleList.map((item, i) => {
if (item.dictKey == e) {
//根據select所選的值給input賦上對應的值
this.form.trainingTime=item.dictTime
this.form.title= item.dictValue
}
});
},- 效果圖:

總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Vue項目打包成exe可執(zhí)行文件的實現過程(無瑕疵,完美版)
突然接到公司需求,說客戶想讓我們把項目直接打包,所以下面這篇文章主要給大家介紹了關于Vue項目打包成exe可執(zhí)行文件的實現過程,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-11-11
Vue中消息橫向滾動時setInterval清不掉的問題及解決方法
最近在做項目時,需要進行兩個組件聯動,一個輪詢獲取到消息,然后將其傳遞給另外一個組件進行橫向滾動展示,結果滾動的速度越來越快。接下來通過本文給大家分享Vue中消息橫向滾動時setInterval清不掉的問題及解決方法,感興趣的朋友一起看看吧2019-08-08
關于vue利用postcss-pxtorem進行移動端適配的問題
這篇文章主要介紹了關于vue利用postcss-pxtorem進行移動端適配的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11
vue表單vxe-form多字段聯動校驗的操作方法(對一個控件校驗多個關聯字段)
vue表單vxe-form如何多字段聯動校驗,對一個控件校驗多個關聯字段,這篇文章給大家介紹vue表單vxe-form如何多字段聯動校驗,對一個控件校驗多個關聯字段,感興趣的朋友跟隨小編一起看看吧2026-02-02

