a***@163.com
a***@163.com
  • 发布:2019-10-12 08:38
  • 更新:2021-07-07 09:07
  • 阅读:1821

安卓禁止弹出软件盘

分类:HTML5+

最近在做一个项目,其中有个功能需要自动输入数据(扫码枪或者是IC读卡器)。用input每次都会弹出虚拟键盘,非常不方便,然后在论坛里面找到加上readonly就行,实测不行。最后发现扫码枪(部分)、IC读卡器是模拟键盘输入的,就想到了另外一个解决方案。

问题:禁止安卓输入框弹出软键盘

解决思路:用jQuery获取按键值,然后把按键值转换回按键,之后累加到自己想要的数位后可以直接填充到相应位置或操作。

代码如下:

            card_id = "";  
            old_card_id = "";  
            $("body").on("keyup", function(event) {//获取键值  
                old_card_id = "";  
                switch(event.which){//键值转换为所按按键(下面为数字0-9键值)  
                    case 48:  
                    old_card_id = 0;  
                    break;  

                    case 49:  
                    old_card_id = 1;  
                    break;  

                    case 50:  
                    old_card_id = 2;  
                    break;  

                    case 51:  
                    old_card_id = 3;  
                    break;  

                    case 52:  
                    old_card_id = 4;  
                    break;  

                    case 53:  
                    old_card_id = 5;  
                    break;  

                    case 54:  
                    old_card_id = 6;  
                    break;  

                    case 55:  
                    old_card_id = 7;  
                    break;  

                    case 56:  
                    old_card_id = 8;  
                    break;  

                    case 57:  
                    old_card_id = 9;  
                    break;  

                    default:  
                    card_id = "";  
                    document.onkeydown=null;  
                    break;  
                };  
                card_id = card_id + old_card_id;//把转换后的按键累计成字符串  
                if (card_id.length == 10) {//需要的字符个数  
                    console.log(card_id);  
                    alert(card_id);  
                    card_id = "";  
                }if(card_id.length > 10){//本处可不需要,因为我的IC读卡器是18位的,我只需要10位数字,所以这里我过滤了超过10位数字的字符串  
                    card_id = "";  
                }  
            });

最后,也许代码有些乱或者冗余。各位需要的小伙伴看一下思路就行。

0 关注 分享

要回复文章请先登录注册

huangzoro

huangzoro

回复 DCloud_UNI_GSQ :
主要问题是:当input框获取焦点时不弹出软键盘
2021-07-07 09:07
DCloud_UNI_GSQ

DCloud_UNI_GSQ

试试:https://ext.dcloud.net.cn/plugin?id=2548
2020-08-17 21:00
潘潘潘潘潘

潘潘潘潘潘

用input, 然后readOnly = “readOnly”, 再用通过监听键盘或者广播的方式,获取到扫描的数据, 通过input.value = 数据,就可以了。。。。
2020-05-04 14:54