2011-09-25 103 views
2

給定一個文本輸入字段。我怎樣才能防止用戶輸入空格,而不是字母數字或短劃線( - )。 「如何防止用戶在輸入字段內輸入無效字符

僅限字母數字字符集 - 」字母數字字符集由數字0到9和字母A到Z組成。在perl編程語言中,下劃線字符(_)也被認爲是字母數字字符集的成員「

這是用於用戶可以選擇自定義網址的字段。我想阻止用戶輸入無效字符。

想法?謝謝

+2

確保無論您使用Javascript做什麼,只要到達服務器,您也可以進行一些過濾! –

回答

3

你可以使用jQuery keyup(..)方法來做到這一點。您需要檢查event.keyCode是否有效。如果無效,您可以通過preventDefault()阻止事件。

記得驗證發送到服務器的數據,因爲你在javascript中做的任何事情都可以被破壞。

這裏是爲你做一個庫:http://www.itgroup.com.ph/alphanumeric/

+0

只是好奇。爲什麼不按鍵?或者我們應該安全行事,並聽取keyup.keydown和按鍵。 –

+0

@KiranRuthR'keypress'與'keydown'類似,不同之處在於它只在按住某個鍵時纔會觸發一次。我相信你可以用'keydown'實現一個解決方案。閱讀jQuery文檔以獲取更多信息:http://api.jquery.com/keypress/ –

+0

很酷..感謝您的幫助 –

0

有大量的JavaScript驗證庫的外面。快速谷歌搜索'javascript驗證'產生JQuery Validation plugin插件作爲第一擊,所以這可能是一個很好的開始。

正如@Chris Cooper所說的,確保你也做了服務器端的驗證,因爲用戶關閉javascript並避免你的客戶端驗證規則是非常微不足道的。

0

雖然我的回答很晚,但這可能會對讀者/技術人員有所幫助。 誰想要實現一個文本框接受以下條件。

  • 應該接受字母。
  • 應該接受Numbers。
  • 不應該接受任何特殊字符。

以下是代碼。加入

$("input[name='txtExample'] ").focus(function (e) { 
 
\t \t if (!(e.which != 8 && e.which != 0 && ((e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122)))) { 
 
\t \t \t event.preventDefault(); 
 
\t \t } 
 
\t }).keyup(function (e) { 
 
\t \t if (!(e.which != 8 && e.which != 0 && ((e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122)))) { 
 
\t \t event.preventDefault(); 
 
\t \t \t } 
 
\t }).keypress(function (e) { 
 
\t \t if (!(e.which != 8 && e.which != 0 && ((e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122)))) { 
 
\t \t \t event.preventDefault(); 
 
\t \t } 
 
\t 
 
\t });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" name="txtExample"/>

與例子。

相關問題