【问题标题】:Simulate keypress without jquery [duplicate]模拟没有jquery的按键[重复]
【发布时间】:2013-06-26 14:42:34
【问题描述】:

我有一个输入字段,用户可以在其中写东西。我希望,如果用户按下键“1”,模拟另一个键按下“F”。 因此,如果用户键入字符 1,则在该字段中将显示 1f。 不使用 jQuery 怎么办?

【问题讨论】:

  • 您只是想将f 字符附加到文本框,还是实际上需要让它看起来像是按下了f 键?
  • 不,我必须这样做才能看起来像按下了 f 键。

标签: javascript html


【解决方案1】:
var evt = document.createEvent("KeyboardEvent");
evt.initKeyEvent ("keypress", true, true, window,
                0, 0, 0, 0,
                13, 13); 
var canceled = !body.dispatchEvent(evt);

文档:https://developer.mozilla.org/en-US/docs/Web/API/event.initKeyEvent

对于基于 Webkit 的浏览器,初始化可能有点不同

initKeyboardEvent(in DOMString typeArg, 
              in boolean canBubbleArg, 
              in boolean cancelableArg, 
              in views::AbstractView viewArg, 
              in DOMString keyIdentifierArg, 
              in unsigned long keyLocationArg, 
              in boolean ctrlKeyArg, 
              in boolean shiftKeyArg, 
              in boolean altKeyArg, 
              in boolean metaKeyArg, 
              in boolean altGraphKeyArg);

【讨论】:

  • 那么,我应该把它放在我所在领域的 onkeypress 事件中吗?
  • initKeyEvent 已被弃用,可能很快就会停止工作。请参阅重复问题中的this answer
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 2012-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多