上下文:kendoGrid
,其中编辑设置为弹出窗口。打开一个包含字段的弹出窗口,在这种情况下,编辑窗口的模板是自定义的JS逻辑等。已按所需顺序为所有字段设置tabindex
值,并在第一个字段上设置自动对焦领域。我有自定义JS,它在网格的Edit事件上运行,以便在窗口弹出时定位和调整窗口大小:function editWindowLocation(e)
观察:如果表单和字段是静态的,那么使用JS代码就相对简单:document.formName.fieldName.focus();
问题:窗口弹出后,新窗口有焦点。当按下Tab键时,它会将焦点发送到窗口上的按钮(更新/取消)以后更多标签,它会到达字段。如何让弹出窗口中的第一个字段聚焦,因此tabbing会将焦点设置为其索引设置顺序中的其他字段?
答案 0 :(得分:-1)
解决方案:在function editWindowLocation(e)
结束时,我添加了一些代码来查找第一个tabindex
并将焦点设置为它。
setTimeout(function () {
$("input[tabindex=1]").focus();
}, 1000);
为什么要说超时? kendoWindow以某种方式覆盖了.focus()
事件,并将焦点放在div
kendoWindow
上。但是当在超时完成时,它按预期工作。不知道为什么会这样,但这对我有用。
希望这可以帮助有类似问题的人。