網上找的回車錄入焦點前往一下控件的方式普遍比較復雜,自己不想用。學習了一個下午后似乎搞定。先帖一段代碼,以后有時間解釋,也請大家指教。利用下面的代碼注冊自己的v-enterToNext指令,並在el-form中指定使用,內部的4個控件不需要設置任何東西就能在輸入回車時跳到下一控件
Vue.directive('enterToNext',{
inserted:function(el){
console.log("enterToNext...")
//let frm = el.querySelector('.el-form');
let inputs = el.querySelectorAll('input');
console.log(inputs);
//綁定回寫事件
for( var i = 0 ;i < inputs.length ; i++ ){
inputs[i].setAttribute("keyFocusIndex",i);
inputs[i].addEventListener('keyup', (ev) => {
if (ev.keyCode === 13) {
let targetTo = ev.srcElement.getAttribute('keyFocusTo');
if(targetTo){
this.$refs[targetTo].$el.focus();
}else{
var attrIndex = ev.srcElement.getAttribute('keyFocusIndex');
var ctlI = parseInt(attrIndex);
if(ctlI<inputs.length-1)
inputs[ctlI+1].focus();
}
}
});
}
},
});
上面是注冊自己的v-enterToNext指令的代碼
下面是我測試的el-dilalog,只需在el-form中指定v-enterToNext,后面的【=”true"】其實可能省略

