Javascript 按下键后强制按下键

Javascript 按下键后强制按下键,javascript,jquery,events,keydown,keyup,Javascript,Jquery,Events,Keydown,Keyup,我有5个输入,他们每个人都会等待一封信。一旦一个字母被填满,我就必须自动跳转到下一个输入 问题是,如果我只捕获keyup,这会使我正确跳转,但不会让我“快速”编写 e、 假设我必须写“megan”这个词,所以我从m开始,但是如果我在释放m键之前按下e,那么我就会有奇怪的行为 这是HTML <form> <div class="code-cell"><input id="code-1" tabindex="1" class="code-inpu

我有5个输入,他们每个人都会等待一封信。一旦一个字母被填满,我就必须自动跳转到下一个输入

问题是,如果我只捕获
keyup
,这会使我正确跳转,但不会让我“快速”编写

e、 假设我必须写“megan”这个词,所以我从
m
开始,但是如果我在释放
m
键之前按下
e
,那么我就会有奇怪的行为

这是HTML

    <form>
        <div class="code-cell"><input id="code-1" tabindex="1" class="code-input" type="text"  data-isvalid="false" /></div>
        <div class="code-cell"><input id="code-2" tabindex="2" class="code-input" type="text" maxlength="1" data-isvalid="false" /></div>
        <div class="code-cell"><input id="code-3" tabindex="3" class="code-input" type="text" maxlength="1" data-isvalid="false" /></div>
        <div class="code-cell"><input id="code-4" tabindex="4" class="code-input" type="text" maxlength="1" data-isvalid="false" /></div>
        <div class="code-cell"><input id="code-5" tabindex="5" class="code-input" type="text" maxlength="1" data-isvalid="false" /></div>
    </form>
keydown
中执行此操作可以让我快速编写,但不会让我顺利跳转到下一个输入


我想知道,当检测到按键关闭时,是否可以强制任何按键打开。

也许你可以这样做。但我不确定你的解释

$('body').keydown(function (e) {
    if(e.keyCode==40) { // use your key code instead of Enter Key code
        //do something
    }
    return false;
})
.keyup(function(e) {
    if(e.keyCode==40) { // use your key code instead of Enter Key code
        //do something else
    }
    return false;
});


$('body').on('keyup', function (e) {
    if(e.keyCode==40) { // use your key code instead of Enter Key code
        //do something
    }
    // after first keyup set to handle next keydown only once:
    $(this).one('keydown', function(e) { 
        if(e.keyCode==40) { // use your key code instead of Enter Key code
            //do something else
        }
    });
});

为什么你不能在键盘上写下来,在键盘上移动?i、 e.当捕捉到keydown事件时,按您的方式收集值,然后在触发KeyUp事件时,将光标移动到下一个输入

但是,在回答您关于发射事件的问题时……基于,您可以这样做:

// Do whatever here to captrure your keydown then
if ("createEvent" in document) {
    var el = document.getElementById('textBox');
    var e = document.createEvent('HTMLEvents');
    e.initEvent('keyup', false, true);
    el.dispatchEvent(e);
}
else{
    element.fireEvent("onkeyup");
}
快速示例:

var el=document.getElementById('textBox');
el.onkeyup=函数(){
console.log('KeyUp-catch');
};
el.onkeydown=函数(){
console.log('KeyDown-capture');
如果(文档中的“createEvent”){
var e=document.createEvent('HTMLEvents');
e、 initEvent('keyup',false,true);
el.调度事件(e);
}否则{
元素。fireEvent(“onkeyup”);
}
};

请同时放置您的keyup和keydown事件代码。如果我只是移动keyup,那么我就不能像我在问题中所说的那样快速编写
// Do whatever here to captrure your keydown then
if ("createEvent" in document) {
    var el = document.getElementById('textBox');
    var e = document.createEvent('HTMLEvents');
    e.initEvent('keyup', false, true);
    el.dispatchEvent(e);
}
else{
    element.fireEvent("onkeyup");
}