vueカスタム命令実装入力ボックスは整数のみ入力可能

588 ワード

//                 
Vue.directive('onlyInteger', {
  inserted: function(el) {
    el.addEventListener('keypress', function(e) {
      e = e || window.event
      let charcode = typeof e.charCode === 'number' ? e.charCode : e.keyCode
      let re = /\d/
      if (!re.test(String.fromCharCode(charcode)) && charcode > 9 && !e.ctrlKey) {
        if (e.preventDefault) {
          e.preventDefault()
        } else {
          e.returnValue = false
        }
      }
    })
  }
})