xlb-main-login
Version:
``` yarn install ```
29 lines (27 loc) • 909 B
JavaScript
import Vue from 'vue'
const findEle = (parent, type) => {
return parent.tagName.toLowerCase() === type ? parent : parent.querySelector(type)
}
const trigger = (el, type) => {
const e = document.createEvent('HTMLEvents')
e.initEvent(type, true, true)
el.dispatchEvent(e)
}
const validateTemp = {
bind: function (el, binding, vnode) {
const regRule = /[`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/g
const $inp = findEle(el, 'input')
el.$inp = $inp
$inp.handle = function () {
const val = $inp.value
$inp.value = val.replace(regRule, '')
trigger($inp, 'input')
}
$inp.addEventListener('keyup', $inp.handle)
},
unbind: function (el) {
el.$inp.removeEventListener('keyup', el.$inp.handle)
},
}
const validate = Vue.directive('isValidate', validateTemp)
export default validate