允许文本框仅用于使用jQuery的字母?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (53)

我想让文本框只允许使用jQuery的字母(a-z)。有什么例子吗?

提问于
用户回答回答于
<input name="lorem" onkeyup="this.value=this.value.replace(/[^a-z]/g,'');">

onblur对于喜欢粘贴而不是打字的恶意用户可以相同;)

[+]漂亮的jQuery代码:

<input name="lorem" class="alphaonly">
<script type="text/javascript">
$('.alphaonly').bind('keyup blur',function(){ 
    var node = $(this);
    node.val(node.val().replace(/[^a-z]/g,'') ); }
);
</script>
用户回答回答于

更好的方法

下面创建一个密钥代码数组(白名单)。如果按下的键不在数组中,则忽略输入:

$(".alpha-only").on("keydown", function(event){
  // Allow controls such as backspace, tab etc.
  var arr = [8,9,16,17,20,35,36,37,38,39,40,45,46];

  // Allow letters
  for(var i = 65; i <= 90; i++){
    arr.push(i);
  }

  // Prevent default if not in array
  if(jQuery.inArray(event.which, arr) === -1){
    event.preventDefault();
  }
});

请注意,这允许大写字母和小写字母.

我已经包含了密钥代码,如后退空间,删除和箭头键。

扫码关注云+社区

领取腾讯云代金券