0

上下文:kendoGrid编辑设置为弹出。打开一个包含字段的弹出窗口,在这种情况下,编辑窗口的模板是使用 JS 逻辑等自定义的。tabindex已按照我们想要的顺序为所有字段设置了值,并在第一个字段上设置了自动对焦。我有在网格的 Edit 事件上运行的自定义 JS,以在窗口弹出时定位和调整窗口大小:function editWindowLocation(e)

观察:如果表单和字段是静态的,那么这对于 JS 代码来说相对简单,可以执行以下操作:document.formName.fieldName.focus();

问题:窗口弹出打开后,新窗口有焦点。当按下制表键时,它会将焦点发送到窗口上的按钮(更新/取消),稍后再进行制表键,它会到达字段。如何让弹出窗口中的第一个字段成为焦点,以便按设置索引的顺序将焦点设置到其他字段?

4

1 回答 1

-1

解决方案:最后function editWindowLocation(e)我添加了一点代码来找到第一个tabindex并设置焦点。

setTimeout(function () {
    $("input[tabindex=1]").focus();
}, 1000);

你说为什么要超时?kendoWindow 以某种方式覆盖.focus()事件并将焦点放在div使kendoWindow. 但是当超时完成时,它会按预期工作。不知道为什么会发生这种情况,但这对我有用。

希望这可以帮助有类似问题的人。

于 2014-08-18T18:24:35.100 回答