Code Monkey home page Code Monkey logo

vue-contenteditable-input's Introduction

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 ! :)

vue-contenteditable-input's People

Contributors

sudheer-ranga avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.