提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、form表单Enter键指针到下一项指令
1.js
代码如下(示例): 建立个js 文件 写入下面这个
keyEnterNext(el) {
const inputs = el.querySelectorAll('input')
// const enterN = inputs.filter(e => e.disabled === false)
const indexs = []
// 获取disabled 为 false 的 index
for (var i = 0; i < inputs.length; i++) {
if (!inputs[i].disabled) {
indexs.push(i)
}
}
// 对disabled 为 false input项添加 keyup方法
for (var i = 0; i < indexs.length; i++) {
inputs[indexs[i]].setAttribute('keyFocusIndex', indexs[i])
inputs[indexs[i]].addEventListener('keyup', (ev) => {
if (ev.keyCode === 13) {
const targetTo = ev.srcElement.getAttribute('keyFocusTo')
if (targetTo) {
this.$refs[targetTo].$el.focus()
} else {
var attrIndex = ev.srcElement.getAttribute('keyFocusIndex')
var ctlI = parseInt(attrIndex)
const index = indexs.findIndex(e => {
return e === ctlI
})
if (ctlI < inputs.length - 1) { inputs[indexs[index + 1]].focus() }
}
}
})
}
}
2.另写一个 main 引用js
代码如下(示例):
// 上面的 JS 文件
mport enterToNext from './enterToNext'
注册指令
const install = function(Vue) {
Vue.directive('enterToNext', enterToNext)
}
if (window.Vue) {
window['enterToNext'] = enterToNext
Vue.use(install); // eslint-disable-line
}
enterToNext.install = install
export default enterToNext
最后mian.js 引用上述js
import enterToNext from './directive/enterToNext'
Vue.use(enterToNext)