我有一个正在为 IE11 开发的 asp.net Web 应用程序,我试图让 Enter 键功能与 Tab 键相同。大多数情况下,使用下面的代码可以正常工作。但是,如果有禁用的字段或隐藏的 div 中的字段,则 Enter 键不会前进到下一个启用且可见的字段。
这是我所拥有的:
我的主 div 上有以下内容,因此它适用于所有文本框: onkeydown="changeEnterToTab()
函数正常触发,但 getNextElement 函数返回一个未显示或被禁用的字段。
有什么想法吗?
function changeEnterToTab() {
var node = (event.target) ? event.target : ((event.srcElement) ? event.srcElement : null);
if ((event.keyCode == 13) && ((node.type == "text") || (node.type == "radio"))) {
getNextElements(node).focus();
return false;
}
}
function getNextElement(field) {
var form = field.form;
for (var e = 0; e < form.elements.length; e++) {
if (field == form.elements[e]) {
e++;
break;
}
}
e++;
debugger;
while (form.elements[e % form.elements.length].type == "hidden") {
e++;
}
return form.elements[e % form.elements.length];
}
最佳答案
将所有隐藏控件放在表单顶部,以便用户只能通过“Tab”键切换到其余可见控件。
您可以通过将控件的 tabIndex 设置为 -1 来从 Tab 键顺序中排除该控件
<input type="text" name="username" tabIndex="-1" />
罢工><罢工>罢工>
关于javascript - 在javascript中使用回车键作为选项卡时如何跳过隐藏字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24561240/