Sometimes, we want to use v-model with contenteditable elements in Vue.js.
In this article, we’ll look at how to use v-model with contenteditable elements in Vue.js.
How to use v-model with contenteditable elements in Vue.js?
To use v-model with contenteditable elements in Vue.js, we should replace it with @input
and put the content into the element itself.
For instance, we write
<template>
<p contenteditable @input="onInput">
{{ content }}
</p>
</template>
<script>
export default {
data() {
return { content: "hello world" };
},
methods: {
onInput(e) {
console.log(e.target.innerText);
},
},
};
</script>
to set @input
to onInput
to watch for changes in the content of the contenteditable
p element.
In onInput
, we get the content of the p element with e.target.innerText
.
Conclusion
To use v-model with contenteditable elements in Vue.js, we should replace it with @input
and put the content into the element itself.