禁用系统键盘,使用自定义键盘光标删除

需求:使用自定义键盘,并且实现光标删除
在这里插入图片描述
思路:
1、需要显示光标的同时禁止弹出系统键盘:把input的readonly属性设置为false;当弹起系统键盘时添加计时器把readonly属性设置为true;(光标显示和键盘的显示不是相关联)
在这里插入图片描述
在这里插入图片描述
2、控制光标定位到文本的指定位置:当点击自定义键盘赋值给input的时候,让input聚焦,使用setSelectionRange定位光标,input聚焦之后引起系统键盘弹起,使用思路1禁用系统键盘


this.vinnumber.el.getInputElement().then(el => {
//el就是input这个元素 
                let timer = null;
                let timer2 = null;
                this.autofocus = false;
                if (el.setSelectionRange) {
                    el.focus();
                    timer = setTimeout(() =>{  //使用计时器,光标定位才生效
                        clearTimeout(timer);
                        el.setSelectionRange(el.selectionStart, el.selectionEnd);
                        //  el.setSelectionRange(select.index+1, select.index+1);
                    },0);
                   
                  } else if (el.createTextRange) {
                    var range = el.createTextRange();
                    range.collapse(true);
                    range.moveEnd('character', el.selectionEnd);
                    range.moveStart('character', el.selectionStart);
                    range.select();
                  }
                  timer2 = setTimeout(() =>{
                    clearTimeout(timer2);
                    this.autofocus = true;
                },0);
            });

3、自定义键盘不能以弹窗的形式显示,否则会使input失焦,失去光标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值