如何只接受字母按键(用于“自动完成”目的)

我想知道…如何只接受键盘上的字母按键..我正在使用jQuery .keypress方法…现在我想知道如何过滤传递的密钥…

我正在尝试为jQuery构建一个简单的自动完成插件…我知道关于jQuery UI,但我想自己做…

提前致谢 :)

您可以将函数绑定到字段,以替换不在az范围内的任何内容。

  

来源: 仅允许使用jQuery的字母文本框?

在回调中,您可以检查事件的keyCode属性。 如果要禁止输入密钥,只需return false 。 例如:

 $('#element').keypress(function(e) { if(e.which < 65 || e.which > 90) //65=a, 90=z return false; }); 

请注意,这不会真的很好。 用户仍然可以粘贴其他文本,或使用基于鼠标的输入设备或任何其他数量的东西。

我根据Tim Down的评论编辑了这个,并用keydownkeyupkeypress事件取代了keyCode

以下内容将阻止在az和AZ之外输入的任何字符进行注册。

 $("#your_input_id").keypress(function(e) { if (!/[az]/i.test(String.fromCharCode(e.which))) { return false; } }); 

这不会阻止出现粘贴或拖动的文本。 最可靠的方法是change事件,只有在输入失去焦点后才会触发:

 $("#your_input_id").change(function(e) { this.value = this.value.replace(/[^az]+/gi, ""); }); 

这对我有用,它只接受没有特殊字符或数字的字母

 $("#your-input-here").keypress(function (e) { return validateAlphaKeyPress(e); }); function validateAlphaKeyPress(e) { if (e.keyCode >= 97 && e.keyCode <= 122) { return true; } return false; }