event.preventDefault();在IE中工作很奇怪

时间:2013-07-28 12:16:21

标签: javascript jquery internet-explorer preventdefault

$('input').keypress(function(e) {
        var regex = new RegExp("^[a-zA-Z0-9]+$");
        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
        if (!regex.test(key)) {
           event.preventDefault ? event.preventDefault() : event.returnValue = false;
        }
    });

如何解决这个问题在IE中工作。这个想法是逃避按键上的特殊字符。在chrome,mozilla等中工作得很好,但IE忽略了所有的按键功能,即使它对正则表达式有效。

2 个答案:

答案 0 :(得分:1)

使用以下代码

$('input').keypress(function(e) {
    var regex = new RegExp("^[a-zA-Z0-9]+$");
    var key = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    if (!regex.test(key)) {
       e.preventDefault ? e.preventDefault() : e.returnValue = false;
    }
});

答案 1 :(得分:0)

$('input').keypress(function(e) <--- use e.preventDefault();

$('input').keypress(function(event) <--- use event.preventDefault();

无论您传递给函数的参数是什么,都可以使用它来调用事件对象。