抑制输入字段的键盘事件

时间:2009-02-03 16:52:48

标签: javascript jquery keyboard

我已经使用jQuery的keypress事件定义了一些全局键盘处理。

有没有办法为输入 / textarea 字段抑制这些事件,以免干扰输入?
我已经使用了一些基于元素选择器的条件,但是那些因为它们在每一个按键被触发而产生了很大的性能影响。

(其中一些字段是动态创建的,这是我无法控制的 - 也许这是相关的。)

2 个答案:

答案 0 :(得分:3)

为所有输入和textareas创建一个onfocus处理程序,它设置一些全局变量,指示应忽略键盘事件。为blur事件创建另一个处理程序以重置全局变量。

var DISABLE_KEY_HANDLERS = false;

$('input[type=text], input[type=password], textarea').focus(function(){
  DISABLE_KEY_HANDLERS = true
})

$('input[type=text], input[type=password], textarea').blur(function(){
  DISABLE_KEY_HANDLERS = false
})

在你的密钥处理程序中,你只需检查值是否为真,如果为真则返回。

答案 1 :(得分:1)

事实证明,事件已经为我提供了我需要的一切; ev.target 是活动的DOM元素,因此我可以检查这是否是输入字段。