我已经疯了,试图弄清楚如何使这项工作。代码大致如下:
function onDropDownChanged() {
$("#updatePanel").load(
"myUrl",
{ id: $("#myDropDown option:selected").val() },
onPanelLoaded
);
}
function onPanelLoaded() {
$("#theTextInput").focus();
}
$(document).ready(function() {
$("#myDropDown").change(onDropDownChanged);
}
第一次触发更改处理程序时,它执行 ajax 更新,并且文本框获得焦点。
但是,在随后的更改中,它会继续进行 ajax 更新,但文本框永远不会再次聚焦。
我发现如果在ajax 调用之前onDropDownChanged
添加,文本框将始终获得焦点。$("#updatePanel").empty()
问题是整个表格消失了一秒钟,导致丑陋的闪光。鉴于 ajax 应该让这样的事情变得很好,这不是我想要使用的解决方法。