Javascript 为什么不是';Firefox中HTML5联系人表单的数字字段中是否存在退格?
我正在尝试修复与联系人表单相关的JavaScript错误。当用户试图输入他们的联系电话号码时,他们无法更正,也无法使用退格键。这个问题只在Firefox中出现,在Chrome中,它工作得非常好 这是我的密码:Javascript 为什么不是';Firefox中HTML5联系人表单的数字字段中是否存在退格?,javascript,php,web,Javascript,Php,Web,我正在尝试修复与联系人表单相关的JavaScript错误。当用户试图输入他们的联系电话号码时,他们无法更正,也无法使用退格键。这个问题只在Firefox中出现,在Chrome中,它工作得非常好 这是我的密码: CG = (function(){ var _isNumeric = function(evt){ evt = (evt) ? evt : window.event; var charCode = (evt.which) ? evt.whic
CG = (function(){
var
_isNumeric = function(evt){
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if(charCode >= 48 && charCode <= 57)
return true;
return false;
},
_isDecimal = function(evt){
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if((charCode >= 48 && charCode <= 57) || charCode==46)
return true;
return false;
},
_alphanumeric = function(evt){
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
return ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || charCode == 8 || charCode == 32 || (charCode >= 48 && charCode <= 57));
};
return{
isDecimal:_isDecimal,
isNumeric:_isNumeric
}
});
$(document).ready(function(){
$("input[type=text]").on("keypress",".isDecimal",function(e){
return CG.isDecimal(e);
});
$(document).on("keypress",".isNumeric",function(e){
return CG.isNumeric(e);
});
$(document).on("keypress",".alphanumeric",function(e){
return CG.alphanumeric(e);
});
$(document).on("keypress",".isDecimal",function(e){
return CG.isDecimal(e);
});
})
CG=(函数(){
变量
_isNumeric=函数(evt){
evt=(evt)?evt:window.event;
var charCode=(evt.which)?evt.which:evt.keyCode;
如果(charCode>=48&&charCode=48&&charCode 64&&charCode<91)| |(charCode>96&&charCode<123)| | charCode==8 | | charCode==32 |(charCode>=48&&charCode Yes如果函数返回false
则忽略键事件,如果不返回true
则忽略退格。您可以使用HTML5表单验证,而不使用任何JavaScript来简化它。@xander您能详细说明我在这里可以做什么吗我刚刚自己测试了它,第一个问题是并非所有浏览器都会处理带有“keypress”事件的所有按键,Firefox会收到“backspace”,但Chrome和IE不会(例如,backspace press在Chrome中工作)。但是如果您查看代码,则\u isDecimal
已经存在删除键的异常(字符代码46)| | charCode==46
,因此您可以在此处添加另一个退格例外(char code 8)以进行快速修复。也许不是最佳解决方案,但在您的情况下应该可以这样做,是否有特定的原因来验证按键而不是输入内容,例如尝试禁用剪贴板粘贴?