javascript - 使用 Enter Keydown Event 移动到下一个输入

标签 javascript jquery keyboard-events

我有一个大表格。当用户填写值时,我希望 enter 键具有与 tab 键相同的行为(即我想将用户移动到下一个 input 元素,当按下 enter 键时。

由于我的 HTML 表单分为多个部分的方式,我不能假设下一个 input 是当前输入的兄弟。此外,输入的类和 ID 不是连续的。

jQuery:

$("input").bind("keydown", function (event) {
    document.getElementById('keys').innerHTML = document.getElementById('keys').innerHTML + event.which + " ";
    if (event.which === 13) {
        event.stopPropagation();
        event.preventDefault();
        var e = $.Event("keydown");
        e.which = 9;
        $(this).trigger(e);
    }
});


JSFIDDLE

最佳答案

这会完成你的工作

 $("input").not($(":button")).keypress(function (evt) {
            if (evt.keyCode == 13) {
                iname = $(this).val();
                if (iname !== 'Submit') {
                    var fields = $(this).parents('form:eq(0),body').find('button, input, textarea, select');
                    var index = fields.index(this);
                    if (index > -1 && (index + 1) < fields.length) {
                        fields.eq(index + 1).focus();
                    }
                    return false;
                }
            }
        });

example

关于javascript - 使用 Enter Keydown Event 移动到下一个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32909018/

相关文章:

jquery - 视频播放完毕后,开始播放音频吗?

shell - 在shell脚本中使用SCP时如何响应密码提示?

javascript - addEventListener 不添加事件

javascript - 修改 Redux 表单值并触发 onchange

javascript - 如何通过类名和过滤函数获取attr值

jQuery 对象不支持 IE 中的属性或方法 trim()

jQuery - 使用箭头键导航 div 网格

angular - 在浏览器的输入中检测 Ctrl + C 和 Ctrl + V

javascript - 在 D3 中获取过渡值

javascript - React/Jest/Enzyme 浅渲染测试中如何将文本输入到表单中?