javascript - 关于JS判断keycode的问题。估计你们都没遇到过

 ZZ张朝_288 发布于 2022-11-09 23:40

我想通过JS来禁用键盘按下的减号。也就是按减号的时候我return false;
但是问题来了。英文减号被我禁掉了,中文减号还是会写进去。这是我很不解的。

 $(document).on("keydown",'.floatNumber ',function(e){


          var keynum;
        if(window.event) // IE
        {
            keynum = e.keyCode
        }
        else if(e.which) // Netscape/Firefox/Opera
        {
            keynum = e.which
        }
        //229为中文减号,189为英文减号
        if(keynum==229||keynum==189){
            return false
        }
        
   })

跪求大神解决这个问题。输入框里面按中英文的减号都不让它输入

1 个回答
  • 这是因为对于一些键盘语言有一个占位符的概念,就像你在打中文字。我做了一个GIF动画,你会看更明白。

    可以看出 229 并非所谓中文减号,只是一个在非一些键盘语言上的占位符倒置的值,而且这个值好像在不同浏览器上是不一样的。

    但是在输入中文减号时为什么没有显示占位符,那是因为“太快了”,中文的减号在录入过程中也是占位的。

    解决办法

    我认为可以考虑使用正则,比如:

    $(document).on("keydown",'.floatNumber ',function(e){
        let el = $(this);
        el.val(el.val().replace(/[^.0-9]+/g, ''));
    })
    2022-11-12 01:50 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有