【问题标题】:KendoGrid popup edit window, Form field set focus using jqueryKendoGrid 弹出编辑窗口,表单字段使用 jquery 设置焦点
【发布时间】:2014-08-18 18:24:35
【问题描述】:

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

观察:如果表单和字段是静态的,则使用 JS 代码相对简单:document.formName.fieldName.focus();

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

【问题讨论】:

    标签: kendo-grid form-fields kendo-window


    【解决方案1】:

    解决方案:在function editWindowLocation(e)的末尾我加了一点代码,找到第一个tabindex并设置焦点。

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

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

    希望这对有类似问题的人有所帮助。

    【讨论】:

    • 使用 setTimeout 作为解决方法是一种可怕的 hack。
    猜你喜欢
    • 1970-01-01
    • 2012-07-08
    • 2015-03-05
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多