Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何只接受按字母顺序排列的按键(用于“自动完成”)_Javascript_Jquery - Fatal编程技术网

Javascript 如何只接受按字母顺序排列的按键(用于“自动完成”)

Javascript 如何只接受按字母顺序排列的按键(用于“自动完成”),javascript,jquery,Javascript,Jquery,我想知道。。。如何仅接受键盘上按字母顺序排列的按键。。我正在使用jQuery.keypress方法。。。现在我想知道如何过滤传递的密钥 我正在尝试为jQuery构建一个简单的自动完成插件…我知道关于jQuery UI的一些知识,但我想自己去做 提前感谢:)在您的回调中,您可以检查事件的keyCode属性。如果要禁止输入密钥,只需返回false。例如: $('#element').keypress(function(e) { if(e.which < 65 || e.which &g

我想知道。。。如何仅接受键盘上按字母顺序排列的按键。。我正在使用jQuery.keypress方法。。。现在我想知道如何过滤传递的密钥

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


提前感谢:)

在您的回调中,您可以检查事件的
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)){