我的代码就像这样
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 :(得分: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)
我遇到过类似的问题,我想在小键盘上按 + 标签到下一个字段。现在我已经发布了一个我认为可以帮助你的图书馆。它确实需要jquery。
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});
。