Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么不是';Firefox中HTML5联系人表单的数字字段中是否存在退格?_Javascript_Php_Web - Fatal编程技术网

Javascript 为什么不是';Firefox中HTML5联系人表单的数字字段中是否存在退格?

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

我正在尝试修复与联系人表单相关的JavaScript错误。当用户试图输入他们的联系电话号码时,他们无法更正,也无法使用退格键。这个问题只在Firefox中出现,在Chrome中,它工作得非常好

这是我的密码:

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)以进行快速修复。也许不是最佳解决方案,但在您的情况下应该可以这样做,是否有特定的原因来验证按键而不是输入内容,例如尝试禁用剪贴板粘贴?