2017-05-12 93 views
0

我寫了一個函數用於使用jquery進行輸入驗證,它只允許輸入字符和數字。這在鉻瀏覽器中工作正常,但是當我在Firefox瀏覽器中測試它時,退格不起作用...下面是我的功能相同。當驗證應用時,backspace在firefox中不起作用輸入

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

請幫我解決這個問題。提前致謝。

回答

0

您可以添加[\b]字符類以匹配退格。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#character-classes

var noSpecialCharacther = function (fieldId) { 
 

 
    $('#' + fieldId).on('keypress', function (event) { 
 

 
    var regex = new RegExp("^[a-zA-Z0-9 .\b()-]+$"); 
 
    var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); 
 

 
    if (!regex.test(key)) { 
 
     event.preventDefault(); 
 
     return false; 
 
    } 
 

 
    }) 
 

 
} 
 

 
noSpecialCharacther('test')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input type="text" id="test">

+0

感謝您的溶液。它現在在Firefox瀏覽器中工作 –

+0

當然,你很歡迎。 ;) – DavidDomain

相關問題