2017-09-29 112 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

相关问题