如何在JavaScript中禁用输入文本框的键盘事件

6
我有一张图片,并使用键盘对其进行操作(平移,缩放..)。在图片上方,有一个输入框显示数据集中的图像编号。当光标位于文本框上时,如何禁用图像操作(即禁用为每个键盘分配的操作行为)?我还想能够编辑文本框(例如,移动到图像编号xx)。从我在这里阅读的内容IPad Disable keyevent on input,我认为解决方案是这样的:
 // input text field
   var currentPosDisplay = $('<input type=text id="currentPos"  onkeypress="return  disableManipulation();" value="1" style="display:inline" >');

但我不知道如何实现disableManipulation(),这样当我按下键盘(在文本框内),只会发生默认行为(而不是图像操作)

2个回答

7
似乎您想让用户更改中的值,但您不希望在文档(或其他容器)级别看到这些事件,因为您已经钩取了用于图像处理的键盘事件。
如果是这种情况,您可以使用Event#stopPropagation来实现此功能。
var currentPosDisplay = $('<input type=text id="currentPos" value="1" style="display:inline" >');
currentPosDisplay.on("keypress keydown keyup", function(e) {
    e.stopPropagation();
});

1
你可以检查输入元素是否拥有焦点:如何找到当前DOM元素的焦点? 如果有焦点,就不要应用图像操作。
从onkeypress处理程序返回false将忽略按下的键,但如果你已经拥有了焦点,那么听起来你也不需要它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接