zoukankan      html  css  js  c++  java
  • vue在element-ui的对话框的编辑控件回车时让焦点跳到下一控件

    网上找的回车录入焦点前往一下控件的方式普遍比较复杂,自己不想用。学习了一个下午后似乎搞定。先帖一段代码,以后有时间解释,也请大家指教。利用下面的代码注册自己的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();   
              }  
            }
          });
        }
        
      },
    });
    View Code

    上面是注册自己的v-enterToNext指令的代码

    下面是我测试的el-dilalog,只需在el-form中指定v-enterToNext,后面的【=”true"】其实可能省略

  • 相关阅读:
    P1012拼数
    P1622释放囚犯
    P1064 金明的预算方案
    P1754球迷购票问题
    卡塔兰数
    P1474货币系统
    P2562kitty猫基因
    P3984高兴的津津
    5-servlet简介
    java通过百度AI开发平台提取身份证图片中的文字信息
  • 原文地址:https://www.cnblogs.com/kevin-Y/p/10351059.html
Copyright © 2011-2022 走看看