回答
首先,这可能不是一个好主意可用性方面。然而,这里的东西应该工作:
$(":input").on("keydown", function(event) {
if (event.which === 13 && !$(this).is("textarea, :button, :submit")) {
event.stopPropagation();
event.preventDefault();
$(this)
.nextAll(":input:not(:disabled, [readonly='readonly'])")
.first()
.focus();
}
});
是找到下一个输入可能必须改变,这取决于你的标记的部分。
我遇到了类似的问题,我想按数字键+来选择下一个字段。现在我已经发布了一个我认为会帮助你的图书馆。
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
});
样本HTML
<!-- Enable enter as tab as the default for all fields in this form -->
<form data-plus-as-tab="true">
<input type="text" value="Enter skips to the next field" autofocus="autofocus" />
<!-- Exclude this textarea -->
<textarea data-plus-as-tab="false">Enter works as usual</textarea>
<input type="text" value="Enter skips to the next field" />
<select><option>Enter skips here too</option></select>
<!-- Exclude this submit button -->
<button type="submit" data-plus-as-tab="false">Enter works as usual</button>
</form>
正如你所看到的,很容易使容器中的所有元素与data-plus-as-tab="true"
,并且很容易排除的具体内容与data-plus-as-tab="false"
。您还可以使用$('textarea, :button').plusAsTab(false);
从javascript中排除某些类型(在现有元素上)。
您可以在PlusAsTab enter as tab demo中自己尝试一下。
此解决方案适用于我。在IE和FireFox上测试过。
<script type="text/javascript">
function tabE(obj, e) {
var e = (typeof event != 'undefined') ? window.event : e; // IE : Moz
if (e.keyCode == 13) {
var ele = document.forms[0].elements;
for (var i = 0; i < ele.length; i++) {
var q = (i == ele.length - 1) ? 0 : i + 1; // if last element : if any other
if (obj == ele[i]) {
ele[q].focus();
break
}
}
return false;
}
}
</script>
<form METHOD="POST">
<input name="" type="text" onkeypress="return tabE(this,event)">
<br>
<input name="" type="text" onkeypress="return tabE(this,event)">
<br>
<input name="" type="text" onkeypress="return tabE(this,event)">
<br>
<INPUT TYPE="submit" Value="Ok">
</form>
我发现它here。
欢迎来到[stackoverflow.com](http://stackoverflow.com),感谢您的帮助。请记住描述你的答案。 – hofmeister 2015-01-17 10:23:51
如何检查表单元素在这种情况下显示? 我有许多输入(文本框,单选按钮,),但显示的一些元素,有些元素不显示
<script type="text/javascript">
function tabE(obj, e) {
var e = (typeof event != 'undefined') ? window.event : e; // IE : Moz
if (e.keyCode == 13) {
var ele = document.forms[0].elements;
for (var i = 0; i < ele.length; i++) {
var q = (i == ele.length - 1) ? 0 : i + 1; // if last element : if any other
if (obj == ele[i]) {
ele[q].focus();
break
}
}
return false;
}
}
</script>
<form METHOD="POST">
<input name="" type="text" onkeypress="return tabE(this,event)">
<br>
<input name="" type="text" onkeypress="return tabE(this,event)">
<br>
<input name="" type="text" onkeypress="return tabE(this,event)">
<br>
<INPUT TYPE="submit" Value="Ok">
</form>
欢迎来到StackOverflow。如果你有问题,请提出一个新问题 – slfan 2015-03-16 13:04:09
- 1. 按回车键
- 2. 如何按一个按钮回车键
- 3. 点击“回车”按键
- 4. 按回车键退出(Java)
- 5. 按回车键登录
- 6. 如何发表评论按回车键
- 7. 如何聆听Java中按下/键入的TAB键?
- 8. 在EditText中输入数据,然后按下回车键回车
- 9. 如何在按下回车键或回车键时阻止表单提交?
- 10. 如何使用“空格键或回车键”等键盘按键停止按下按钮。 C#
- 11. 如何检测JComboBox中的TAB按键?
- 12. 如何检测Safari中的“tab”按键
- 13. MVVM的DataTemplate上按Tab键
- 14. 当我按下回车键时如何触发网站的按钮?
- 15. 如何将按下的按键转换为不同的按键pygtk
- 16. 如何在html上按下回车键触发按钮
- 17. C++中的break语句按回车键
- 18. JTable - 按Tab键进入编辑模式
- 19. 检测Tab键按下蓝牙键盘
- 20. 元素'tab键按订单
- 21. 检测Ctrl + Tab键按下
- 22. 如何发送量角器中的键盘按键,如TAB
- 23. 如何在按下回车键和/或在键盘区外部按键后使键盘退出?
- 24. 按回车键不用确认
- 25. XtraGrid。按回车键应用筛选器
- 26. asp.net - 按回车键触发updatepanel
- 27. 按回车键不选择复选框
- 28. 使回车键像提交按钮
- 29. 按回车键时发送消息
- 30. 用jquery按下检测回车键
的可能重复回车按键的行为类似于JavaScript中的Tab]键(HTTP://计算器.com/questions/1009808/enter-key-press-behaves-like-a-tab-in-javascript) – 2011-12-29 05:40:58
这个问题很好的合并候选人是特别要求jQuery解决方案。 – xan 2011-12-29 11:59:12
安德鲁惠特克的答案真的很好,并不建立在类似或相关的其他问题。 – 2013-09-02 16:46:06