1
$('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 忽略所有按键功能,即使它对正则表达式有效。

4

2 回答 2

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;
    }
});
于 2013-07-28T12:17:51.300 回答
0
$('input').keypress(function(e) <--- use e.preventDefault();

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

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

于 2013-07-28T12:25:41.333 回答