2017-09-29 109 views
2

我想限制所有的符號被輸入到我的表單字段在HTML中。停止字符輸入窗體字段

這裏是我的代碼...

<script> 
    $('#location').keypress(function (e) { 
     var regex = new RegExp("[^a-zA-Z0-9]+$"); 
     var str = String.fromCharCode(!e.charCode ? e.which : e.charCode); 
     if (regex.test(str)) { 
      return true; 
     } 

     e.preventDefault(); 
     return false; 
    }); 
</script> 

但是,代碼不允許任何空間,甚至使用Delete鍵。我想要的一切工作,但不希望任何符號(即$#@%^!'「[] {}()等...)

+0

你應該能夠只是改變你的正則表達式來調整是什麼,是不允許的。如果你想爲多個字段添加字段,請將字段添加到您的選擇器$(「#location,#otherField,#otherOtherField).keypress ...' – theGleep

回答

0

你可以去除keyup代替無效字符。

$('#location').keyup(function(e){ 
    $(this).val($(this).val().replace(/[^a-zA-Z0-9\s]/g, ''); 
}); 

否則,您必須指定要允許鍵的keyCode http://www.asciitable.com/

0

剛剛得到的字母和數字的範圍

48 - 57(0-9)

65 - 90(A-Z)

97 - 122(A-Z)

<script> 
    $('#location').bind('keypress', function (e) { 
     if (e.which < 48 || 
      (e.which > 57 && e.which < 65) || 
      (e.which > 90 && e.which < 97) || 
      e.which > 122) { 
      e.preventDefault(); 
     } 
    }); 
</script> 
+0

此代碼似乎不起作用。不能刪除,空間或任何東西。 –

+0

@RandyThomas對不起,我沒有測試我糾正了代碼現在應該工作 – kemotoe

相關問題