我有一个正在为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];
}
答案 0 :(得分:0)
将所有隐藏的控件放在表单的顶部,这样用户只能“选项卡”到其余的可见控件。
您可以通过将 tabIndex 设置为 -1
<input type="text" name="username" tabIndex="-1" />
击> <击> 撞击>
答案 1 :(得分:0)
我没有找到这个问题的实际答案,但我通过完全重新排序TabIndex以处理隐藏/禁用控件的实例来解决这个问题。
感谢大家的想法。