首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >charCode函数返回backspace的0值

charCode函数返回backspace的0值
EN

Stack Overflow用户
提问于 2016-02-23 13:56:12
回答 4查看 620关注 0票数 2

我试图通过使用自定义的jQuery函数过滤用户输入:

代码语言:javascript
复制
$(document).ready(function(){
$('#afm').keypress(function(key){

    var len = $('#afm').val().length;
    console.log(key.charCode);

    if( key.charCode < 8   || (key.charCode > 8 && key.charCode < 48) || key.charCode > 57 && len < 9){ 

        $('#tip-afm').text("error");
        return false;
    }
    else
        $('#tip-afm').text("");
 })
})

每当我按回退时,console.log就会将charCode显示为0。据我所知,8是分配给backspace的代码..。我做错什么了吗?我是否必须将代码更改为0来处理backspace的代码?或者这可能会在将来导致错误?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-02-23 14:14:29

您必须使用jQuery.keyup()而不是jQuery.keypress(),使用key.keyCode而不是key.charCode

代码如下:

代码语言:javascript
复制
$(document).ready(function(){
$('#afm').keyup(function(key){

    var len = $('#afm').val().length;
    console.log(key.keyCode);

    if( key.keyCode < 8   || (key.keyCode > 8 && key.keyCode < 48) || key.keyCode > 57 && len < 9){ 

        $('#tip-afm').text("error");
        return false;
    }
    else
        $('#tip-afm').text("");
 })
})
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="afm">
<div id="tip-afm">

</div>

票数 1
EN

Stack Overflow用户

发布于 2016-02-23 13:59:43

使用这个来获取按下的键的代码

代码语言:javascript
复制
var code = e.keyCode || e.which;
票数 2
EN

Stack Overflow用户

发布于 2016-02-23 14:00:09

使用以下方法检查字符:

key.whichkey.keyCode

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35579495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档