我一直在疯狂地尝试弄清楚如何让这个工作。代码大致如下:
第一次触发更改处理程序时,它会执行ajax更新,并将文本框聚焦。
然而,在随后的更改中,它继续执行ajax更新,但文本框再也没有被聚焦。
我发现如果在
function onDropDownChanged() {
$("#updatePanel").load(
"myUrl",
{ id: $("#myDropDown option:selected").val() },
onPanelLoaded
);
}
function onPanelLoaded() {
$("#theTextInput").focus();
}
$(document).ready(function() {
$("#myDropDown").change(onDropDownChanged);
}
第一次触发更改处理程序时,它会执行ajax更新,并将文本框聚焦。
然而,在随后的更改中,它继续执行ajax更新,但文本框再也没有被聚焦。
我发现如果在
onDropDownChanged
中,在ajax调用之前添加$("#updatePanel").empty()
,则文本框始终会被聚焦。但问题是整个表单会消失一秒钟,造成不好的闪烁效果。考虑到ajax应该使这样的事情变得更加美好,这不是我想使用的解决方法。