jquery 输入文本限制中的按键,我希望它只允许 A-Z 和白色 space 但我的代码不允许 "Y" 和 "Z"

jquery keypress in input text restriction, i want it to allow A-Z and white space only but my code won't allow "Y" and "Z"

其实我没有编码,我只是复制并粘贴它来尝试。

这是代码。

$("#firstname, #lastname").keypress(function(event) {
  var inputValue = event.charCode;
  if (!(inputValue >= 65 && inputValue <= 120) && (inputValue != 32 && inputValue != 0)) {
    event.preventDefault();
  }
  $('#input').html(inputValue);
});

y 的键码是 121,同样 z 的键码是 122。因此,如果你想将它们包含在范围内,则应将 inputValue <= 120 更改为 inputValue <= 122.

但是,您不需要为此检查键码。我建议使用正则表达式 /[^a-z\s]/gi(这是一个否定字符 class,它将匹配不是 a-z 或空格的字符 - 不区分大小写)。

您可以简单地将这些字符替换为空字符串并有效地删除它们:

$("#firstname, #lastname").on('input', function(event) {
  this.value = this.value.replace(/[^a-z\s]/gi, '');
});

基本示例:

$("#firstname, #lastname").on('input', function(event) {
  this.value = this.value.replace(/[^a-z\s]/gi, '');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="firstname" type="text" />