Skip to content

yutakahoulette-zz/snabbdom-form-helpers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Snabbdom form helpers

CircleCI

npm install snabbdom-form-helpers

Provides helpers for the following form elements:

  • checkbox (handles setting unique id for input and for attr for label)
  • credit card input (uses creditcards package to format number and set card type to data-credit-card attribute)
  • phone number input (formats 123456780 to 123 456 7890)
  • radios (handles setting unique id for input and for attr for label)
  • select

checkBox

  • handles setting unique id for input and for attr for label

takes an object with the following properties:

key type explanation required
value String value of input when checkbox is checked true
label String label text true
name String value of name property of the input false
checked Boolean whether the checkbox is checked false
classes String string of class names ('.mt-2.color-red') false
cb Function callback function that gets called on change event false
var fh = require('snabbdom-form-helpers')

h('div', [
  h('label', 'Checkbox')
, fh.checkBox({
    name: 'anonymous',
    value: 't',
    label: 'Donate anonymously?'
  })
])

cardInput

takes an object with the following properties:

key type explanation required
name String value of name property of the input false
value String value of input false
placeholder String placeholder text false
classes String string of class names ('.mt-2.color-red') false
cb Function callback function that gets called on input event false
var fh = require('snabbdom-form-helpers')

h('div', [
  h('label', 'Credit card'),
  fh.cardInput({
    name: 'card',     
    value: '4242424242424242',
    placeholder: 'Credit card number'
  })
])

phoneInput

  • simply formats a 10 digit number into three parts (formats 123456780 to 123 456 7890)
  • does not do any validation
  • meant only for US phone numbers

takes an object with the following properties:

key type explanation required
name String value of name property of the input false
placeholder String placeholder text false
value String value of input false
classes String string of class names ('.mt-2.color-red') false
cb Function callback function that gets called on input event false
var fh = require('snabbdom-form-helpers')

h('div', [
  h('label', 'Phone number'),
  fh.phoneInput({
    name: 'phone',
    value: '1234567890',
    placeholder: 'Phone number'
  })
])

radios

  • handles setting unique id for input and for attr for label

takes an object with the following properties:

key type explanation required
name String value of name property of the input true
options Array of objects [{label: 'cash', value: 'money'}] the value key is optional true
selected String will check an input if the selected string matches the input's value false
classes String string of class names ('.mt-2.color-red') false
cb Function callback function that gets called on change event false
var fh = require('snabbdom-form-helpers')

h('div', [
  h('label', 'Radios'),
  fh.radios({cb, selected: 'check', name: 'payment-method', options: [
    {label: 'check'},
    {label: 'credit card', value: 'card'},
    {label: 'cash', value: 'money'}
]})

select

takes an object with the following properties:

key type explanation required
name String value of name property of the select false
options Array of strings or objects a select option will be created for each of these option strings or objects true
selected String will select an option if the selected string matches the option's value false
placeholder String placeholder option false
classes String string of class names ('.mt-2.color-red') false
disabled Function function that disables an option if the return value is truthy false
cb Function callback function that gets called on change event false
var fh = require('snabbdom-form-helpers')

var disabled = function(option) {return option ==='mail'}

h('div', [
  h('label', 'Select'),
  fh.select({
    cb, 
    disabled, 
    selected: 'phone', 
    placeholder: 'Contact preference', 
    name: 'contact-preference', 
    options: [
      'SMS', {value: 'phone', label: 'Phone number'}, 'email', 'mail'
    ]})
])

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published