我在 v-select
中建立一個下拉式選單,在點擊清除按鈕時選擇一個選項後,我需要清除下拉式選單並將選項陣列更改為初始階段。
如何檢查清除按鈕(x)是否被單擊,我嘗試使用on-change
用於獲取所選值,它工作正常,而@click
等都不起作用,請幫助我。
<template> <v-select v-model="selected" :reduce="(option) => option.id" :options="[ { label: 'One', id: 1 }, { label: 'Two', id: 2 }, ]" @onChange="searchProduct" /> </template> <script> export default { data() { return { selected: 3, } }, methods(){ searchProduct(selected){ console.log('selected value ',selected) } } </script>
我期待一些方法來處理下拉清除事件。
P粉3114649352023-12-28 09:43:47
由於我們還沒有任何明確的事件
,因此我們可以透過觀察v-model
值來實現此要求。
watch: { selected(value) { if (!value) { // Your logic here } } }
根據要求進行現場演示:
Vue.component("v-select", VueSelect.VueSelect);
new Vue({
el: "#app",
data: {
selected: 3
},
watch: {
selected(value) {
if (!value) {
this.selected = 3;
}
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.11/vue.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-select/3.10.3/vue-select.js"></script>
<link rel="stylesheet" href="https://unpkg.com/vue-select/dist/vue-select.css"/>
<div id="app">
<v-select
v-model="selected"
:reduce="(option) => option.id"
:options="[
{ label: 'One', id: 1 },
{ label: 'Two', id: 2 },
]"
/>
</div>