如何使用Javascript将密钥发送到输入文本字段?

时间:2011-08-15 06:53:13

标签: javascript html ajax

当光标使用Javascript进入输入文本字段时,如何发送键组合(如Ctrl + C或Alt + Shift)?

我没有使用jQuery 但是正在使用MS-Ajax。是否可以使用MS-Ajax DOM?

编辑1)

根据@Ghostoy的帮助,我写了这段代码:

function simulateKeyPress() {
            var evt = document.createEvent("KeyboardEvent");
            evt.initKeyEvent("keypress", true, true, window,
       0, 0, 0, 0,
       0, "e".charCodeAt(0))
            var canceled = !body.dispatchEvent(evt);
            if (canceled) {
                alert("canceled");
            } else {
                alert("not canceled");
            }
        }

但是当它被调用时我得到了一个错误:

Error: Object doesn't support property or method 'initKeyEvent'

然后我将KeyboardEvent更改为KeyEvents我收到了此错误:

Error: DOM Exception: NOT_SUPPORTED_ERR (9)

我的错在哪里?

4 个答案:

答案 0 :(得分:2)

模拟关键事件并不容易。看到这个问题: Simulating user input for TDD JavaScript。你最好尝试其他的解决方法。

答案 1 :(得分:1)

更改 evt.initKeyEvent(...)evt.initKeyboardEvent(...)

或更改为jQuery:)

答案 2 :(得分:0)

您无法触发关键事件,就像用户实际按下了该键一样。有关相关问题,请参阅here。您可以触发自己bindings的事件,就像这样(JSFiddle here,从上面的答案中复制):

 var e = jQuery.Event("keydown");
 e.which = 50; // # Some key code value
 $("input").trigger(e);

答案 3 :(得分:0)

有一个答案!我们只需要扩展JQ事件及其所有需要的属性,请参见此处: http://bresleveloper.blogspot.co.il/2013/03/jsjq-simulate-enter-event.html