最近遇到一個問題,當我想在一個下拉框中選值時,另一個下拉框的值清空。可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方法,這樣就會接着將里面兩個內容都清空。 再加一個參數為判斷條件時,這樣的問題就會避免。
