如何在javascript或jQuery中模拟ENTER键盘上的TAB

Ari*_*ian 6 javascript jquery

我想在页面的所有输入中更改keydown(按键)中的键码.我想用TAB键代码替换Enter键码.我怎么能这样做?

谢谢


编辑1)

考虑以下代码:

<div>
    <asp:RadioButtonList ID="RadioButtonList1" runat="server">
        <asp:ListItem>1</asp:ListItem>
        <asp:ListItem>2</asp:ListItem>
        <asp:ListItem>3</asp:ListItem>
        <asp:ListItem>4</asp:ListItem>
    </asp:RadioButtonList>
    <br />
    <br />
    <asp:TextBox ID="TextBox1" runat="server">3333</asp:TextBox>
    <br />
    <br />
    <asp:DropDownList ID="DropDownList1" runat="server">
        <asp:ListItem>1</asp:ListItem>
        <asp:ListItem>2</asp:ListItem>
        <asp:ListItem>3</asp:ListItem>
    </asp:DropDownList>
</div>
Run Code Online (Sandbox Code Playgroud)

我想当用户在上面控制焦点的eny上按Enter键进入下一个控件.

谢谢

Joe*_*rra 6

我有一个类似的问题,我想在按钮+上按下Tab键到下一个字段.现在我已经发布了一个我认为可以帮助你的图书馆.

PlusAsTab:一个jQuery插件,使用numpad plus键作为tab键等价物.

由于您需要enter/ 而不是,您可以设置选项.找出你想要使用jQuery event.which demo的密钥.

JoelPurra.PlusAsTab.setOptions({
  // Use enter instead of plus
  // Number 13 found through demo at
  // https://api.jquery.com/event.which/
  key: 13
});
Run Code Online (Sandbox Code Playgroud)

然后通过添加plus-as-tab="true"到要使用enter-as-tab的表单字段或包含这些表单字段的其他元素来启用该功能.单选按钮应该不是问题,因为它们被我的其他库EmulateTab覆盖 - 请参阅该演示中的单选按钮的自动导航.

<div plus-as-tab="true">
  <!-- all focusable elements inside the <div> will be enabled -->
  <asp:RadioButtonList ID="RadioButtonList1" runat="server">
    <!-- Radio buttons should not be a problem. -->
  </asp:RadioButtonList>
</div>
Run Code Online (Sandbox Code Playgroud)

您可以在PlusAsTab中自行尝试输入标签演示.


Ari*_*ian 0

我认为这项工作:

 $('input').live("keypress", function (e) {
        /* ENTER PRESSED*/
        var OffSet = 0;
        if (e.keyCode == 13) {
            /* FOCUS ELEMENT */
            if ($(this).is("input[type='radio']")) {
                var tblID = $(this).closest('table').attr('id');
                var radios = $('#' + tblID).find(":input");
                //alert(radios.index(this));
                OffSet = radios.length - radios.index(this) - 1;
            }
            //alert(OffSet);

            var inputs = $(this).parents("form").eq(0).find(":input");
            var idx = inputs.index(this);
            inputs[idx + OffSet].blur();

            try {
                inputs[idx + OffSet].selectionStart = inputs[idx + OffSet].selectionEnd = -1;
            } catch (e) {

            }
            if (idx == inputs.length - 1) {
                inputs[0].select();
            } else {
                inputs[idx + 1 + OffSet].focus(); //  handles submit buttons
                try {
                    inputs[idx + 1 + OffSet].select();
                } catch (e) {
                }
            }
            return false;
        }
    });
Run Code Online (Sandbox Code Playgroud)