🔔 Alert..!! Get 2 Month Free Cloud Hosting With $200 Bonus From Digital Ocean ACTIVATE DEAL

A component for turning web forms into conversations using Vue.js.

Form

Documentation

Vue.js Conversational Form

Turning web forms into conversations using Vue.js.
Demo

Install

npm i --save vue-conversational-form

Usage

<template>     <ConversationalForm @submit="submit">       <fieldset>         <label for="name">What's your name?</label>         <input required data-question="Hi there! What's your name? " type="text" name="name" id="name">       </fieldset>       <fieldset>         <label for="thats-all">Are you ready to submit the form?</label>         <button data-question="Are you ready to submit the form?" data-success="Submited! Yay! 😄" name="submit" type="submit" data-cancel="Nope">Yup</button>       </fieldset>     </ConversationalForm> </template> <script> import ConversationalForm from 'vue-conversational-form'  export default {   name: 'App',   components: {     ConversationalForm   },   methods: {     submit (o) {       console.log('Submit:')       console.log(o) // get form data     }   } } </script>

Documentation

The content of the question should be defined in the data-question attribute.
Multple question options will be seperated by |. Use inserted values using {value-name}.
In submit buttons, use data-success for defining success message.
In submit/reset buttons, use data-cancel for defining the cancel button's text.
Listen in the parent to submit event in order to get the submitted data (as an object).

Define a text/email/password input:

<fieldset>   <label for="name">What's your name?</label>   <input required data-question="Hi there! What's your name? " type="text" name="name" id="name"> </fieldset>

Define a radio buttons' group:

<fieldset>    <label for="name">Gender</label><br />    <input type="radio" data-question="What's your gender?" name="gender" value="male" data-text="Male" /> Male<br>    <input type="radio" name="gender" value="female" data-text="Female" /> Female<br>    <input type="radio" name="gender" value="other" data-text="Other" /> Other </fieldset>

Define a select group:

<fieldset>     <label for="opinion">Will conversational interfaces be everywhere?</label>     <select data-question="Do you think conversational forms will replace web forms in the future?" name="opinion" id="opinion">         <option></option>         <option>Definitely</option>         <option>Maybe</option>         <option>No</option>     </select> </fieldset>

Define a submit button:

<fieldset>     <label for="thats-all">Are you ready to submit the form?</label>     <button data-question="Are you ready to submit the form?" data-success="Submited! Yay! 😄" name="submit" type="submit" data-cancel="Nope">Yup</button> </fieldset>

Define a reset button:

<fieldset>     <label for="thats-all">Want to start over?</label>     <button data-question="Want to start over?" name="reset" type="reset" data-cancel="No">Yes, let's go again</button> </fieldset>

Use inserted values as a part of a question:

<fieldset>     <label for="company">Company</label>     <input data-question="{occupation}, nice! Which company are you with?" type="text" name="company" id="company"> </fieldset>

You May Also Like