Я сошел с ума, пытаясь понять, как заставить это работать. Код выглядит примерно так:
function onDropDownChanged() {
$("#updatePanel").load(
"myUrl",
{ id: $("#myDropDown option:selected").val() },
onPanelLoaded
);
}
function onPanelLoaded() {
$("#theTextInput").focus();
}
$(document).ready(function() {
$("#myDropDown").change(onDropDownChanged);
}
При первом запуске обработчика изменений выполняется обновление ajax, и текстовое поле фокусируется.
Однако при последующих изменениях он продолжает обновлять ajax, но текстовое поле больше никогда не фокусируется.
Я обнаружил, что если в onDropDownChanged
добавить $("#updatePanel").empty()
перед вызовом ajax, текстовое поле всегда будет сфокусировано. Проблема в том, что вся форма исчезает на секунду, вызывая уродливую вспышку. Учитывая, что ajax должен делать такие вещи, это не обходной путь, который я хочу использовать.