javascript - Jquery:在输入焦点下一个输入

标签 javascript jquery

我目前正在尝试在用户使用 Jquery 按下回车键时关注下一个输入类型。但是,由于某种原因,它没有检测到按键。

输入类型位于名为 mGrid 的 css 类中。

function addFocusSupport() {
    $(".mGrid").find('input').each(function (index, element) {
        // Here we get all the TextFields
        alert($(this));
        $(this).on("keypress",
            function (e) {
                if (e.KeyCode() === 13) {
                    // Focus next textfield
                    alert("Enter Pressed");
                    var nextElement = $('[index="' + (this.Index + 1) + '"]');
                    nextElement.focus();
                    alert(nextElement);
                    e.preventDefault();
                }
                // TODO: For last TextField, do nothing
            });
    });
}

所以我想做的是: 用户填写第一个输入,按下回车键,然后自动选择下一个文本框。将其视为按下一个选项卡。

但是 if (e.KeyCode() === 13) { 之后的事件永远不会触发?

最佳答案

就我而言,以下代码运行良好。

$('body').on('keydown', 'input, select', function(e) {
  if (e.which === 13) {
    var self = $(this), form = self.parents('form:eq(0)'), focusable, next;
    focusable = form.find('input').filter(':visible');
    next = focusable.eq(focusable.index(this)+1);
    if (next.length) {
        next.focus();
    }
    return false;
  }
});

关于javascript - Jquery:在输入焦点下一个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46682428/

相关文章:

javascript - Javascript 可以知道用户是否选择了禁用警报的框(防止页面创建额外的对话框)

jquery - 仅使用 HTML/CSS 创建粗箭头

javascript - 正则表达式第一个字符不能是点,只能是数字

javascript - 一次显示 4 个 div 的无限循环

javascript - 无法在Firebase中捕获.on()的错误

javascript - Chrome 和 Google 网络字体的问题。显示来自 Firefox 的不同输出

javascript:console.log 在这种情况下不起作用?

javascript - JavaScript 中的 [[ param1, param2 ... ]] 结构是什么?

javascript - html5 音频在元素存在之前绑定(bind) timeupdate

javascript - jQueryeach() 不工作