问题
我正在使用 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/