Jquery在Enter Key Press上选择NEXT文本字段

Gra*_*win 8 html javascript keyboard jquery

我使用jquery创建了一个页面,并在加载时自动选择第一个文本字段.我希望它在按下ENTER键时移动到下一个字段.

$('.barcodeField input').bind('keyup', function(event) {
    if(event.keyCode==13){
       $("this + input").focus();     
    }
});
Run Code Online (Sandbox Code Playgroud)

我在网上找不到任何可行的东西.我在论坛上搜索过.

Mar*_*rry 17

我已经创建了一个可以满足你需要的功能.这是我使用的版本,因此您可能需要更改类名,但您应该明白这一点.

<script type="text/javascript">
$(document).ready(function(){
$(".vertical").keypress(function(event) {
        if(event.keyCode == 13) { 
        textboxes = $("input.vertical");
        debugger;
        currentBoxNumber = textboxes.index(this);
        if (textboxes[currentBoxNumber + 1] != null) {
            nextBox = textboxes[currentBoxNumber + 1]
            nextBox.focus();
            nextBox.select();
            event.preventDefault();
            return false 
            }
        }
    });
})
</script>
Run Code Online (Sandbox Code Playgroud)

所以基本上: -

  • 获取与.vertical匹配的所有输入字段
  • 找到哪个是当前文本框
  • 找到下一个
  • 将焦点放在那一个上


Sar*_*raz 11

你应该使用:

$(this).next('input').focus();  
Run Code Online (Sandbox Code Playgroud)

  • 如果下一个兄弟是一个`<input>`,这将有效,但如果它是一个`<label>`或其他东西,它将找不到匹配. (3认同)