I am creating a dropdown menu in v-select
and after selecting an option when clicking the clear button, I need to clear the dropdown menu and change the options array to the initial stage.
How to check if clear button(x) is clicked, I tried using on-change
for getting the selected value and it works fine while @click
etc. don't It works, please help me.
<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>
I was expecting some way to handle the dropdown clear event.
P粉3114649352023-12-28 09:43:47
Since we don't have any explicit events
yet, we can achieve this requirement by observing the v-model
value.
watch: { selected(value) { if (!value) { // Your logic here } } }
Live demonstration upon request :
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>