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

时间:2013-09-06 14:19:09

标签: javascript css input keyboard

我有一张图片,我用键盘对它进行一些操作(翻译,缩放......)。在图像上方,我有一个输入文本框,显示数据集中的图像编号。 当光标在文本框上时,如何禁用图像处理? (即禁用我分配给每个键盘的行为)。我还想能够编辑文本框(例如移动到图像编号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 个答案:

答案 0 :(得分:6)

听起来您想让用户更改input中的值,但您不希望在文档(或其他某个容器)级别上看到这些事件,您已经挂钩了用于图像处理的键盘事件。

如果是这种情况,您可以使用Event#stopPropagation

执行此操作
var currentPosDisplay = $('<input type=text id="currentPos" value="1" style="display:inline" >');
currentPosDisplay.on("keypress keydown keyup", function(e) {
    e.stopPropagation();
});

答案 1 :(得分:0)

您可以检查输入元素是否具有焦点:How do I find out which DOM element has the focus?

如果确实如此,请不要应用图像处理。

从onkeypress处理程序返回false会忽略按下的键,但是如果你有焦点,听起来好像你不想要那样。

相关问题