如何在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(); } }); });