简体   繁体   中英

Vue JS: Reset/Clear value from input

I am building a search feature for my Nuxt Js front end and I need the input value to clear whenever the user has pressed enter to search. This is my current method and markup.

Js

methods: {
        searchTag: function(event) {
            var newtag = event.target.value;
            this.tags.push({name: newtag});
        }
    }

Markup

<input type="text" placeholder="Search for tags..." v-on:keyup.enter="searchTag">

I tried adding event.target.reset(); but it didn't work, seems like such an easy thing but cannot find an answer anywhere, also want to stay away from using Jquery / plain JS as everything else is done without them and dont want to add it to the application for the sake of a tiny feature.

Thanks, Jamie

Found an answer:

Adding a v-model to it and then setting that have a empty string seems to do the trick.

<input type="text" placeholder="Search for tags..." v-on:keyup.enter="searchTag" v-model="searchText">


export default {
    data() {
        return {
            tags: [
            ],
            searchText: ""
        }
    },
    methods: {
        searchTag: function(event) {
            var newtag = event.target.value;
            this.tags.push({name: newtag});
            this.searchText = "";
        }
    }
}

Note that the searchText is set to "" at the end of the search function.

Just bind the input value to a variable and then clear it on the event like this :

data{
  input : ''
},
methods: {
   searchTag: function() {
       this.input = '';
   }
}
<input type="text" placeholder="Search for tags..."  v-on:keyup.enter="searchTag" v-model="input">

Vue is plain js. Of course you can use it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM