不使用 jQuery 模拟按键操作

7

我有一个输入框,用户可以在其中写东西。如果用户按下“1”键,我想模拟另一个键盘按键“F”的按下操作。因此,如果用户输入字符1,在该字段中将显示1f。如何做到这一点,而不使用jQuery呢?


4
你是想在文本框中添加字符"f",还是需要让它看起来像是按下了"f"键? - Joe Enos
1
不,我必须让它看起来像按下了F键。 - Mateus Viccari
1个回答

5
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/zh-CN/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事件中吗? - Mateus Viccari
3
initKeyEvent已过时,可能很快就无法使用了。请参阅重复的问题中此答案 - Dan Dascalescu

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