asp.net - jQuery UI 对话框 + ASP.NET 文本框 + 焦点

标签 asp.net jquery jquery-ui

问题

我正在使用 jQuery UI 对话框来显示一个对话框,其中包含一些 ASP.NET 文本框和一个按钮。然而,当 jQuery 将对话框的 div 移到表单之外时,我需要自己将其重新移回表单(有关详细信息,请参阅 this),以便 ASP.NET 仍然可以工作。这种移动会导致一个问题,如果调用该字段,则该字段不会获得焦点。

如果您查看标记为 B 行的线下方的示例,则应该设置焦点,但是标记为 A 行的线打破了这一点。如果我注释掉 A 行,它就会起作用。无论我将 B 行移动到哪里(在对话框之前、A 行之前等等),它仍然无法设置焦点。

通过设置焦点,我的意思是光标在文本框中闪烁,准备输入。

问题:在这种情况下如何设置焦点?

示例

HTML 正文示例

<body>
<form id="form1" runat="server">
<div id="popup">
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</div>
</form>
</body>

jQuery 示例

        $(document).ready(function() {
        var dlg = $("#popup").dialog();
        /*Line A*/ dlg.parent().appendTo(jQuery("form:first"));
        /*Line B*/ $("#TextBox2").focus();
    });

最佳答案

尝试使用 setTimeout("$('#TextBox2').focus();",100);,对于 jQuery UI 的对话框和其他方法,有时需要几秒钟才能实际执行我们通过代码分配的任务。

希望这有帮助。这个解决方法对我的许多应用程序都有帮助。

关于asp.net - jQuery UI 对话框 + ASP.NET 文本框 + 焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/773061/

相关文章:

jquery - 使用 Jquery 一次性禁用所有复选框、所有下拉列表和文本框

jquery - 多个类名并根据类名组合应用 CSS

c# - Java Web 服务使用 .Net

jquery - 如何使用jquery监听返回的json对象

javascript - 使用 jQuery 反转箭头键

jquery - 根据屏幕大小设置图像以及div宽度

javascript - 如何使用可选择的 Jquery UI 查找选定元素

c# - 注销不起作用 - Asp.net core 身份服务器

asp.net - 您可以在没有专有软件的情况下通过 ASP.NET 发送传真吗

asp.net - 如何在 web api 2 中获取和设置 cookie