2013-07-28 5 views
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 игнорирует всю функцию нажатия клавиши даже для допустимого для регулярного выражения.event.preventDefault(); работает в IE

ответ

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; 
    } 
}); 
+0

как я мог пропустить это ... спасибо bro –

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

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

Независимо парам вы передаете функции, использовать, чтобы назвать объект события.