我有一张表格。用户按下回车键。他们的按键被捕获,我喜欢我的脚本将焦点提升到当前表单中的下一个可见表单元素。
我目前的想法是,我需要获得循环焦点的输入列表,但我仍然坚持推进的概念 - 比如,我如何弄清楚"下一个&# 34;需要去的是?到目前为止,这是我的代码。
$('.myitems input').on('keydown', function(e){
if ( e.which == 13 ) {
// Get list of items I want to iterate through
var fields = $('.myitems input:visible');
// ...Now what...
}
});
我基本上喜欢将焦点转移到项目集中的下一个可见输入。我猜测为了做到这一点,我需要扫描那些项目,找出哪一个有焦点,然后将焦点分配给列表中的下一个。
但我无法以合理的效率方式考虑任何方式。有什么想法吗?
答案 0 :(得分:1)
这将使焦点在兄弟输入之间循环。我使用nextAll
以防input
以外的其他内容。
$('input.items').on('keydown', function(e){
if ( e.which == 13 ) {
var $next = $(this).nextAll('input');
if($next.length === 0){
$next = $(this).siblings('input');
}
$next.first().focus();
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input class="items" type="text"> <br>
<input class="items" type="text"> <br/>
<input class="items" type="text"> <br/>
</form>
&#13;