Listening Input Element's "focus/blur" Event

Focus / Blur

new Keypad({
  el: document.querySelector('input.js-normal-input'),
  mobile: isMobile
})
      

Manually Control


const keypad2 = new Keypad({
  input: document.querySelector('input.js-toggle-input'),
  mobile: isMobile
})

document.querySelector('button.js-toggle-keypad')
  .addEventListener('click', ev => { keypad2.toggle() }, false)

document.querySelector('button.js-show-keypad')
  .addEventListener('click', ev => { keypad2.show() }, false)

document.querySelector('button.js-hide-keypad')
  .addEventListener('click', ev => { keypad2.hide() }, false)          
      

Handling Keypad Key Events & Modify Elements

none

const keypad3 = new Keypad({
  mobile: isMobile,
  show: false,
  name: 'qwer',
  reducer: {
    key (target) {
      if (target.textContent === 'Space') {
        target.textContent = '空 格'
      }
      return target
    }
  },
  onstart ([text, value, code], ev) {
    console.log(this, ev)
  },
  onend ([text, value, code]) {
    console.log(text, value, code)

    document.querySelector('.js-toggle-keypad2-v').textContent = value
  }
})

document.querySelector('button.js-toggle-keypad2')
  .addEventListener('click', ev => { keypad3.toggle() }, false)
      

6 Numbers Password


const keypad4 = new Keypad({
  input: document.querySelector('input.js-readonly-input'),
  mobile: isMobile,
  onend ([, , code]) {
    const i = document.querySelector('input.js-readonly-input').value.length
    const items = document.querySelectorAll('.js-show-keypad-password > i')

    if (code === 'backspace') {
      if (!i) {
        keypad4.hide()

        return false
      }

      items[i - 1].classList.remove('on')

      return false
    }

    if (i >= items.length) {
      keypad4.hide()

      return true
    }

    items[i].classList.add('on')
  }
})

document.querySelector('.js-show-keypad-password')
  .addEventListener('click', ev => { keypad4.show() }, false)