如何检测keypress()上输入的第一个字符

Posted

技术标签:

【中文标题】如何检测keypress()上输入的第一个字符【英文标题】:How to detect first character of input on keypress() 【发布时间】:2014-04-29 10:36:13 【问题描述】:

我在输入字段中使用 jquery 的函数 keypress

现在,假设我想知道用户何时键入一个字母,如果这是该字段中的第一个字符。我现在使用类似的东西:

element.keypress(function(e)
    //...
    if(elementValue.length()==0)
        //Do something
    

问题是当用户选择输入的文本然后按下一个键(假设是字符'A')替换它。然后这段代码返回旧的(即将被替换的)文本的长度。

我知道我可以改用 keyup,但我认为我需要继续使用 keypress,因为我必须对按下的物理键进行一些检查。 (this answer 在这种情况下确实显示了 keyup 和 keypress 之间的区别)

有什么建议吗?

【问题讨论】:

selectionStart, selectionEnd(适用于<input><textarea> 【参考方案1】:

用户 Paul S. 让我朝着正确的方向前进...

这就是我现在所拥有的,并且有效:

element.keypress(function(e)
    //...
    if(this.selectionStart==0)
        //Do something
    

通过这种方式,我可以在插入符号位于字段开头时检测何时按下了某个键。

【讨论】:

以上是关于如何检测keypress()上输入的第一个字符的主要内容,如果未能解决你的问题,请参考以下文章

keydown,keypress,keyup三者之间的区别

使用javascript制作加法计算器中检测用户输入的数值是否为正整数

如何使用jQuery检测按键盘输入?

VB禁止文本框输入

如何使用 jQuery 检测键盘上的 Enter 键?

JTable keypressed 事件仅在按下的第一个键时触发