当用户在javascript中按“ - ”(短划线)键时,如何自动按“tab”键

时间:2010-11-25 13:59:20

标签: javascript html

我的代码就像这样

        function Tab(e)
        {
            var input = e.keyCode ? e.keyCode : e.charCode;
            if ((input>=48 && input<=57) || (input==45))
            {
                if (input==45)
                {
                //what should i do here? so,  
                //if user press "-", its auto tab to next textfield,
                    return false
                }
                else
                return true;
            }
            else 
            return false;
        }

这里是我的HTML

<input type="text" name="a[]" maxlength='3' onkeypress="return Tab(event)">
<input type="text" name="a[]" maxlength='3' onkeypress="return Tab(event)">
<input type="text" name="a[]" maxlength='3' onkeypress="return Tab(event)">

我一直在谷歌搜索。但它返回了类似的文章,并不是我在寻找 我有很多类似的文本字段,因此不可能包含我使用数组名称的下一个文本字段的名称原因。

抱歉,如果我的英语不好,但我希望你明白我的意思

3 个答案:

答案 0 :(得分:2)

您可以通过以下方式聚焦下一个输入兄弟:

HTML:

<input type="text" name="a[]" maxlength='3' onkeypress="return Tab(event, this)">
<input type="text" name="a[]" maxlength='3' onkeypress="return Tab(event, this)">
<input type="text" name="a[]" maxlength='3' onkeypress="return Tab(event, this)">

JS:

    function Tab(e, inp)
    {
        var input = e.keyCode ? e.keyCode : e.charCode;
        if ((input>=48 && input<=57) || (input==45))
        {
            if (input==45)
            {
                //focus the next input if there is one
                while(inp.nextSibling)
                {
                   var inp=inp.nextSibling;
                   if(inp.nodeType===1 && inp.tagName.toLowerCase()=="input")
                   {
                        inp.focus();
                        break;
                   }
                }
                return false
            }
            else
            return true;
        }
        else 
        return false;
    }

答案 1 :(得分:0)

google只需10秒钟。你无法模拟tab-keypress,但有不同的解决方法(也许你可以使用一个包含你所有字段的id的数组,保存你所处的索引和按下破折号,在数组中聚焦索引+ 1( +设置每个文本字段的保存索引onfocus,以便注意用户是通过单击字段还是真正按Tab键来聚焦字段))

答案 2 :(得分:0)

我遇到过类似的问题,我想在小键盘上按 + 标签到下一个字段。现在我已经发布了一个我认为可以帮助你的图书馆。它确实需要

  

PlusAsTab:一个jQuery插件,使用numpad plus键作为等效的tab键。

因为你想要 - (在普通键上),你可以设置选项。使用jQuery event.which demo找出要使用的密钥。

JoelPurra.PlusAsTab.setOptions({
  // Use dash instead of plus
  // Number 189 found through demo at
  // https://api.jquery.com/event.which/
  key: 189
});

// Matches all inputs with name "a[]" (needs some character escaping)
$('input[name=a\\[\\]]').plusAsTab();

您可try it out in the PlusAsTab demo,并查看enter-as-tab demo。如果要更改为 - 键,可以从javascript控制台调用JoelPurra.PlusAsTab.setOptions({key: 189});