如何自动按 “Tab” 键,当用户按下 “ - ”(破折号)键在JavaScript

问题描述:

我这样的代码如何自动按 “Tab” 键,当用户按下 “ - ”(破折号)键在JavaScript

 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)"> 

我一直在寻找谷歌。但其返回类似的文章,这不是我要找的。
我有很多相似的文本字段,所以不可能包含我使用数组名称的下一个文本字段的名称原因。

对不起,如果我的英语不好,但我希望你明白我想

+0

只是编辑,如果有错误的话 – 2010-11-25 14:00:59

你可以关注下输入这样的同级什么:

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; 
    } 

只需要10秒就可以询问google。你不能模拟Tab键,但有不同的解决方法(也许你可以使用一个数组包含所有你的字段的ID,保存索引,按下破折号,在数组中重点索引+1)( +设置保存指数的onfocus每个文本字段,如果用户通过点击它还是真的压片))

+0

当然你可以*模拟*选项卡,即使没有tabindex。这并不完美,但请参阅[EmulateTab](https://github.com/joelpurra/emulatetab),以获得将焦点移至下一个元素的一般方式 - 也[请尝试简单演示](http://joelpurra.github。 COM/emulatetab /示例/ demo.html)。 – 2012-02-17 11:59:35

我也曾有过类似的问题,在这里我想按+上的数字键盘聚焦在现场要注意选项卡到下一个字段。现在我已经发布了一个我认为会帮助你的图书馆。但确实需要

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});