2017-06-29 31 views
-1

我試圖阻止用戶進入特殊字符,如(!,@,&)如何防止用戶在表單的文本字段中輸入特殊字符?

下面的代碼限制用戶輸入上述字符僅當它之後,它允許用戶將上述字符輸入第一個字符。

例如&無法進入,但一個&可以輸入

$('input#first_name-required').bind('keypress', function(e) { 
    console.log(e.which); 
    if($('input#first_name-required').val().length == 0){ 
     var k = e.which; 
     var ok = k >= 65 && k <= 90 || // A-Z 
      k >= 97 && k <= 122 || // a-z 
      k >= 48 && k <= 57 //0-9 ; 

     if (!ok){ 
      e.preventDefault(); 
     } 
    } 
}); 
+0

你可以看看這個:https://stackoverflow.com/questions/4444477/how-to-tell-if-a-string-contains-a-certain-character-in-javascript – gavsta707

+0

如果你想要它爲所有字符工作,而不僅僅是第一個,爲什麼你有這樣的條件:'if($('input#first_name-required').val()。length == 0){'?看起來你很明確地告訴它只檢查第一個字符。 – Santi

+1

請注意,您不應該依賴這個來保證任何安全性,所有的檢查也應該在服務器端完成。 – NieDzejkob

回答

1

您已經添加if條件。我想你可能要檢查長度刨絲器比0

$('input#first_name-required').bind('keypress', function(e) { 
 
    
 
    
 
     var k = e.which; 
 
     var ok = k >= 65 && k <= 90 || // A-Z 
 
      k >= 97 && k <= 122 || // a-z 
 
      k >= 48 && k <= 57 //0-9 ; 
 

 
     if (!ok){ 
 
      e.preventDefault(); 
 
     } 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="first_name-required">

+0

您的解決方案可行! –

+0

請標記爲解決方案,如果它可以幫助您 – Omi

+0

如何做到這一點? –

2
if($('input#first_name-required').val().length == 0) 

只是刪除這種情況下,它應該工作的罰款。

.val()返回輸入內的字符串。實際上,.length == 0的意思是「如果字符串是0個字符長」。只有當輸入爲空時,驗證纔會運行,因此只有在輸入第一個字符時纔會運行驗證。

+0

你說得對! –

相關問題