使用向上/向下键在表格中的文本字段之间移动

Sam*_*Sam 2 html javascript jquery dom

我有一个像这样大致设置的<table>

Name            Description     Notes
===========================================
[___________]   [_________]     [_________]
Run Code Online (Sandbox Code Playgroud)

有很多行而不是用户通过行标签,我想按下向上/向下键在所选列中上下移动.

行具有ID"row_ {ID}",其中ID是数据库ID.这些字段的ID为"name_ {ID}","description_ {ID}","notes_ {ID}"等.

我正在用jQuery抓住媒体,如:

$('input[id^="name_"]').bind('keyup', function(e) {

    if(e.keyCode == 38)
        ...
    else if(e.keyCode == 40)
        ...
});
Run Code Online (Sandbox Code Playgroud)

基本上我想要的是,如果用户在描述的第2行并按下,则他们移动到第1行描述字段,如果他们按下它们,则移动到第3行描述字段.

我无法找到选择下一行或上一行的方法.有人可以提供帮助吗?

Jos*_*ber 6

往下走:

$(this).closest('tr').next().find('input[name=' + $(this).attr('name') + ']').focus();
Run Code Online (Sandbox Code Playgroud)

上去:

$(this).closest('tr').prev().find('input[name=' + $(this).attr('name') + ']').focus();
Run Code Online (Sandbox Code Playgroud)

也就是说,假设你input的名字都是相同的.

否则,你就必须改变这种选择一点,或使用jQuery的.index()td,然后用选择.eq().

  • @Vincent - `$(...).on('keydown', function(e){ if (e.keyCode == 38) { /* up */ } else if (e.keyCode == 40) { / * 向下 */ } });` (2认同)