验证不适用于Firefox但适用于IE,Chrome

时间:2012-09-25 04:51:17

标签: javascript jquery internet-explorer firefox google-chrome

我使用以下java脚本函数进行整数验证,这意味着文本框只允许输入整数值。 * 在Internet Explorer和谷歌浏览器中工作正常 * 。但是我在FireFox中使用同样的功能,文本框中不允许输入任何字符,这意味着它不允许字符,数字,空格等等。如何解决这个问题?< / p>

javascript功能

$('.intValidate').live('keypress', function(event) {
                var integervalidate = intValidate(event);
                if (integervalidate == false)
                    return false;
            });

function intValidate(event) {
    if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||(event.keyCode == 65 && event.ctrlKey === true) ||(event.keyCode >= 35 && event.keyCode <= 39))
        {
            return;
        }
    else 
    {
        if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 ))
        {
            event.preventDefault(); 
        }   

我使用类

  <input type="text" id="abcd" style="width:30px" maxlength="2"class="intValidate""/>

2 个答案:

答案 0 :(得分:0)

您的问题是浏览器使用按键事件的方式不一致。 阅读this帖子以获得有关解决方案示例的详细解释。

答案 1 :(得分:0)

您正在检查keypress事件中的密钥代码。您应该查看charCode值。