最近遇到一個問題,當我想在一個下拉框中選值時,另一個下拉框的值清空。可vue有個v-model屬性,當我清空另一個下拉框v-model的值為空,就會再一次出發下拉框的@change事件,這樣就會導致兩個下拉框的值都為空,再次選擇下拉框,里面的值才會出來,用戶體驗非常不好。自己想了好久,最后終於在同事的幫助下寫了出來:
<template>中的html部分:
<el-select v-model="SO.a" clearable placeholder="請選擇" @change="change('a',SO.a)"> <el-option v-for="item in options" :label="item.label" :value="item.value" size="small"> </el-option> </el-select> <el-select v-model="SO.b" clearable placeholder="請選擇" @change="change('b',SO.b)"> <el-option v-for="item in options1" :label="item.label" :value="item.value" size="small"> </el-option> </el-select>
JS部分:
change(params,val) { console.log(params) if((params == 'a')&&(val != '')){ this.SO.b = ''; } if((params == 'b')&&(val != '')){ this.SO.a = ''; } }
出現這樣問題的原因是,當我在JS中將v-model里的值置為空時,會接着調用change方法,這樣就會接着將里面兩個內容都清空。 再加一個參數為判斷條件時,這樣的問題就會避免。