Я сошел с ума, пытаясь выяснить, как это сделать. Код выглядит примерно так:Невозможно сфокусировать поле ввода в DOM, загруженном с помощью 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
, я добавил $("#updatePanel").empty()
перед вызовом ajax, текстовое поле всегда будет сфокусировано. Проблема в том, что вся форма исчезает на секунду, вызывая уродливую вспышку. Предполагается, что ajax делает такие вещи такими же приятными, это не обходной путь, который я хочу использовать.
Не могли бы вы разместить бит HTML, на котором вы действуете, а также то, что HTML загружается при вызове ajax? –