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

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

谢谢


编辑1)

考虑以下代码:

1 2 3 4

3333

1 2 3

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

谢谢

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

PlusAsTab :一个jQuery插件,使用numpad plus键作为Tab键等效。

由于您想要输入 / ,您可以设置选项。 找出你想要使用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 }); 

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

 

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

此代码用insert标签替换enter:

 $("#wmd-input").bind("keypress", function(e) { if (e.keyCode == 13) { var input = $(this); var inputVal = input.val(); setTimeout(function() { input.val(inputVal.substring(0,inputVal.length) + "\t"); }, 1); } }); 

现场演示

更新:

此代码将重点关注下一个元素:

 $(document).ready(function () { $("input,select").bind("keydown", function (e) { if (e.keyCode == 13) { var allInputs = $("input,select"); for (var i = 0; i < allInputs.length; i++) { if (allInputs[i] == this) { while ((allInputs[i]).name == (allInputs[i + 1]).name) { i++; } if ((i + 1) < allInputs.length) $(allInputs[i + 1]).focus(); } } } }); }); 

希望这有效

 $('input,textarea').keydown(function(){ if(event.keyCode==13) { event.keyCode = 9; } }); 

编辑

试试这个http://jsfiddle.net/GUmUg/ 。 玩选择器来使这项工作,因为我不知道asp

 $('input,textarea').keypress(function(e){ if(e.keyCode==13) { $(this).next().focus(); } }); 
 $('input').on('keydown',function(e){ var keyCode = e.keyCode || e.which; if(e.keyCode === 13) { e.preventDefault(); $('input')[$('input').index(this)+1].focus(); } }); 

在这里查看小提琴: http : //jsfiddle.net/Pd5QC/

我这样做的方法是在你选择的每一个上使用jquery,并在你打开电流后关注元素。

 $(document).on('keyup', '.my-input', function (ev) { if (ev.keyCode == '13') { var currentInput = this; var isOnCurrent = false; $('.my-input').each(function () { if (isOnCurrent == true) { $(this).focus(); return false; } if (this == currentInput) { isOnCurrent = true; } }); } }); 

我创建了一个简单的jQuery插件 ,可以解决这个问题。 它使用jQuery UI的’:tabbable’选择器来查找下一个’tabbable’元素并选择它。

用法示例:

 // Simulate tab key when enter is pressed $('.myElement').bind('keypress', function(event){ if(event.which === 13){ if(event.shiftKey){ $.tabPrev(); } else{ $.tabNext(); } return false; } }); 

我认为这项工作:

  $('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; } }); 
 $(document).ready(function() { //Objetos con CssClass="EntTab" sustituye el Enter (keycode 13) por un Tabulador (keycode 9)!! $(".EntTab").bind("keypress", function(e) { if (e.keyCode == 13) { var inps = $("input, select"); //add select too for (var x = 0; x < inps.length; x++) { if (inps[x] == this) { while ((inps[x]).name == (inps[x + 1]).name) { x++; } if ((x + 1) < inps.length) $(inps[x + 1]).focus(); } } e.preventDefault(); } }); });