Javascript 如何只接受按字母顺序排列的按键(用于“自动完成”)
我想知道。。。如何仅接受键盘上按字母顺序排列的按键。。我正在使用jQuery.keypress方法。。。现在我想知道如何过滤传递的密钥 我正在尝试为jQuery构建一个简单的自动完成插件…我知道关于jQuery UI的一些知识,但我想自己去做Javascript 如何只接受按字母顺序排列的按键(用于“自动完成”),javascript,jquery,Javascript,Jquery,我想知道。。。如何仅接受键盘上按字母顺序排列的按键。。我正在使用jQuery.keypress方法。。。现在我想知道如何过滤传递的密钥 我正在尝试为jQuery构建一个简单的自动完成插件…我知道关于jQuery UI的一些知识,但我想自己去做 提前感谢:)在您的回调中,您可以检查事件的keyCode属性。如果要禁止输入密钥,只需返回false。例如: $('#element').keypress(function(e) { if(e.which < 65 || e.which &g
提前感谢:)在您的回调中,您可以检查事件的
keyCode
属性。如果要禁止输入密钥,只需返回false
。例如:
$('#element').keypress(function(e)
{
if(e.which < 65 || e.which > 90) //65=a, 90=z
return false;
});
$(“#元素”)。按键(功能(e)
{
如果(e.which<65 | | e.which>90)//65=a,90=z
返回false;
});
请注意,这实际上不会很好地工作。用户仍然可以粘贴其他文本,或者使用基于鼠标的输入设备,或者其他任何东西
我根据Tim Down的评论编辑了这篇文章,并将
keyCode
替换为which
,这在keycdown
、keyup
和keypress
事件中都是正确的。您可以将函数绑定到替换不在a-z范围内的任何内容的字段
<input name="lorem" class="alphaonly" />
<script type="text/javascript">
$('.alphaonly').bind('keyup blur',function(){
$(this).val( $(this).val().replace(/[^a-z]/g,'') );
});
</script>
$('.alphaonly').bind('keyup blur',function(){
$(this.val($(this.val()).replace(/[^a-z]/g',);
});
来源:以下内容将阻止在a-z和a-z之外键入的任何字符注册
$("#your_input_id").keypress(function(e) {
if (!/[a-z]/i.test(String.fromCharCode(e.which))) {
return false;
}
});
这不会阻止粘贴或拖动的文本出现。最可靠的方法是change
事件,只有在输入失去焦点时才会触发该事件:
$("#your_input_id").change(function(e) {
this.value = this.value.replace(/[^a-z]+/gi, "");
});
这对我来说很有效,它只接受字母,不接受特殊字符或数字
$("#your-input-here").keypress(function (e) { return validateAlphaKeyPress(e); });
function validateAlphaKeyPress(e) {
if (e.keyCode >= 97 && e.keyCode <= 122) {
return true;
}
return false;
}
$(“#您在这里的输入”).keypress(函数(e){returnvalidatealphakeypress(e);});
功能验证按键(e){
如果(e.keyCode>=97&&e.keyCode函数名是错误的:它是keypress
。而且,keyCode
是错误的属性。它只是与实际键入的字符松散相关。在jQuery中,您需要which
,它规范化不同浏览器中所需的不同属性。如果
用于按键
!它应该是:如果(!/[a-z]/i.test(String.fromCharCode(e.which)){