2017-04-04 59 views
1

我有一个jQuery代码,它能够防止无效字符在我的输入框中所键入:如何防止无效字符在我的输入框中被复制/粘贴?

$('input#input-firstname').on('keypress', function (event) { 
    var regex = new RegExp("^[a-zA-Z]+$"); 
    var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); 
    if (!regex.test(key)) { 
     event.preventDefault(); 
     return false; 
    } 
}); 

我刚刚发现无效字符,如“%”可以被复制并粘贴到输入框中。我真的需要限制。如何防止这种

回答

1

使用input事件而不是keypress事件:

$('input#input-firstname').on('input', function (event) { ... }) 
1

您可以使用paste事件

$('input#input-firstname').on('keypress paste', function (event) { 
 
    var regex = new RegExp("^[a-zA-Z]+$"); 
 
    var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); 
 
    if (!regex.test(key)) { 
 
     event.preventDefault(); 
 
     return false; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="input-firstname" />

相关问题