我试图通过使用自定义的jQuery函数过滤用户输入:
$(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的代码?或者这可能会在将来导致错误?
发布于 2016-02-23 14:14:29
您必须使用jQuery.keyup()而不是jQuery.keypress(),使用key.keyCode而不是key.charCode。
代码如下:
$(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("");
})
})<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>
发布于 2016-02-23 13:59:43
使用这个来获取按下的键的代码
var code = e.keyCode || e.which;发布于 2016-02-23 14:00:09
使用以下方法检查字符:
key.which和key.keyCode
https://stackoverflow.com/questions/35579495
复制相似问题