首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jquery如何捕获enter键并将事件更改为tab

jquery如何捕获enter键并将事件更改为tab
EN

Stack Overflow用户
提问于 2010-02-26 00:16:13
回答 18查看 151.4K关注 0票数 76

我想要一个jquery解决方案,我必须接近,需要做什么?

代码语言:javascript
复制
$('html').bind('keypress', function(e)
{
     if(e.keyCode == 13)
     {
         return e.keyCode = 9; //set event key to tab
     }
});

我可以返回false,它会阻止回车键被按下,我想我可以将keyCode改为9来使它成为tab,但它似乎不起作用。我得离得很近,怎么回事?

EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2010-02-26 00:21:12

Here is a solution :

代码语言:javascript
复制
$('input').on("keypress", function(e) {
            /* ENTER PRESSED*/
            if (e.keyCode == 13) {
                /* FOCUS ELEMENT */
                var inputs = $(this).parents("form").eq(0).find(":input");
                var idx = inputs.index(this);

                if (idx == inputs.length - 1) {
                    inputs[0].select()
                } else {
                    inputs[idx + 1].focus(); //  handles submit buttons
                    inputs[idx + 1].select();
                }
                return false;
            }
        });
票数 77
EN

Stack Overflow用户

发布于 2011-05-26 01:48:13

这工作得很完美!

代码语言:javascript
复制
 $('input').keydown( function(e) {
        var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
        if(key == 13) {
            e.preventDefault();
            var inputs = $(this).closest('form').find(':input:visible');
            inputs.eq( inputs.index(this)+ 1 ).focus();
        }
    });
票数 33
EN

Stack Overflow用户

发布于 2013-05-28 05:24:08

为什么不像这样简单呢?

代码语言:javascript
复制
$(document).on('keypress', 'input', function(e) {

  if(e.keyCode == 13 && e.target.type !== 'submit') {
    e.preventDefault();
    return $(e.target).blur().focus();
  }

});

这样,您就不会触发提交,除非您已经专注于输入类型" submit“,并且它使您回到您停止的地方。这也使得它适用于动态添加到页面的输入。

注意:对于任何可能有任何"on blur“事件侦听器的人来说,blur()位于focus()之前。该过程不需要工作。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2335553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档