FireFox中的Javascript错误不在IE和Chrome中

FireFox中的Javascript错误不在IE和Chrome中,javascript,internet-explorer,validation,firefox,google-chrome,Javascript,Internet Explorer,Validation,Firefox,Google Chrome,我使用以下函数进行十进制验证。文本框仅允许输入数字和。(点)符号。它在IE和Chrome中运行良好。我的问题是我得到事件未定义错误。如何解决此问题?我有很多文本框验证。因此我创建了与之类似的十进制验证 //Call the Function $('.decimalValidate').live('keypress',function(){ var decimalid=$(

我使用以下函数进行十进制验证。文本框仅允许输入数字和。(点)符号。它在IE和Chrome中运行良好。我的问题是我得到事件未定义错误。如何解决此问题?我有很多文本框验证。因此我创建了与之类似的十进制验证

//Call the Function
                             $('.decimalValidate').live('keypress',function(){
                                  var decimalid=$(this).attr("id");
                                  var decimalval=$('#'+decimalid).val();
                                  var decimalvalidate=ApplyDecimalFilter(decimalval);
                                  if(decimalvalidate == false)
                                  return false;
                             });
//用于十进制验证的函数。它只允许一个。在IE和Chrome上一切都很好

function ApplyDecimalFilter(id)
    {
        try {
              return NewDecimalFilter(id, event);

        } catch (e) {
            alert(e.message);
        }
    }

function NewDecimalFilter(o, event) {

        if (event.keyCode > 47 && event.keyCode < 58) {
            return true;
        }
        if ((event.keyCode == 8 || event.keyCode == 46) && o.indexOf('.') == -1)  {
            return true;
        }
        return false;
    }

在firefox中,
事件
不是全局的<代码>窗口。事件未定义。您需要将事件作为参数传递。顺便说一下,如果使用jQuery>=1.7,则应该使用
.on
而不是
.live

$('.decimalValidate').live('keypress', function (e) {
    var decimalid = $(this).attr("id");
    var decimalval = $('#' + decimalid).val();
    var decimalvalidate = ApplyDecimalFilter(decimalval, e);
    if (decimalvalidate == false) return false;
});

function ApplyDecimalFilter(id, event) {
    try {
        return NewDecimalFilter(id, event);

    } catch (e) {
        alert(e.message);
    }
}

在firefox中,
事件
不是全局的<代码>窗口。事件未定义。您需要将事件作为参数传递。顺便说一下,如果使用jQuery>=1.7,则应该使用
.on
而不是
.live

$('.decimalValidate').live('keypress', function (e) {
    var decimalid = $(this).attr("id");
    var decimalval = $('#' + decimalid).val();
    var decimalvalidate = ApplyDecimalFilter(decimalval, e);
    if (decimalvalidate == false) return false;
});

function ApplyDecimalFilter(id, event) {
    try {
        return NewDecimalFilter(id, event);

    } catch (e) {
        alert(e.message);
    }
}

这个案例适用于IE和Chrome。但是我不能使用Firefox在文本框中输入任何字符Firefox不允许在文本框中输入字符textbox@user你这是什么意思?你能给我一个演示吗?我使用你的想法,然后我在firefox中运行我的应用程序,我无法在其中输入任何内容textbox@user您应该使用
event.which
而不是
event.keyCode
,再试一次*)这个案例在IE和Chrome中都可以使用。但是我不能在这个文本框中输入任何字符,因为Firefox不允许在该文本框中输入字符textbox@user你这是什么意思?你能给我一个演示吗?我使用你的想法,然后我在firefox中运行我的应用程序,我无法在其中输入任何内容textbox@user您应该使用
event.which
而不是
event.keyCode
,请重试*)的可能重复