vue-contenteditable-input

0.1.4 • Public • Published

vue-contenteditable-input

This plugin provides support for contenteditable element supporting v-model. It also provides some additional (optional) features like autofocus, placeholder, preventing html input / paste or new lines.

vue-contenteditable-input has full support of v-model reactivity.

Should you use a content editable ?

The response is generally NO. But there are cases when neither <input/> nor <textarea> could suit your needs, for example when you need a dynamic object size to adapt to user input text size.

Installation

With a build system

$ npm install --save vue-contenteditable-input

To make the plugin available globally

In your main.js:

const VueContenteditableInput = require('vue-contenteditable-input')
Vue.use(VueContenteditableInput)

OR

To include only in specific components

import VueContenteditableInput from 'vue-contenteditable-input'

(Re)build

The required files are provided in `dist/` folder, but if you want to rebuild, simlply run :

npm run build

Directely in html

<script src="vue-contenteditable-input.min.js"></script>

Usage

When you need a contenteditable element:

<template>
  <vue-contenteditable-editable tag="div" placeholder="Enter content" :contenteditable="true" v-model="message" :disable-newline="true" @enter="enterPressed" :autofocus="true" />
</template>
 
<script>
export default {
  data() {
    return {
      message: ''
    }
  },
  methods : {
    enterPressed(value) {
      alert('Enter Pressed with: ', value);
    }
  }
}

Props

Name Type Default Value Description
tag String span
contenteditable Boolean true
input-ref String editable-input
v-model String ''
placeholder String ''
autofocus Boolean false
disable-newline Boolean false
format-text Boolean false

Events

enter When the user press :kbd:Return and disable-newline is set, then it emits the enter event with the current value (as String) as argument.

License

This code is provided as-is, under the terms of the MIT license (see License file for more details).

A link to the original sources and contribution / pull request are welcome if you enjoy / use / contribute to this module ! :)

Package Sidebar

Install

npm i vue-contenteditable-input

Weekly Downloads

42

Version

0.1.4

License

MIT

Unpacked Size

132 kB

Total Files

9

Last publish

Collaborators

  • sudheerranga