この作業を行う方法を理解しようとすると、私は狂ってしまいました。ajaxコールでロードされたDOMに入力フィールドをフォーカスできません
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()
を追加しました。テキストボックスには常にフォーカスが当てられます。問題は、フォーム全体が1秒間消えてしまい、醜いフラッシュが発生することです。 Ajaxがこのようなことをすると仮定すると、私が使いたい回避策ではありません。
あなたが担当しているHTMLのビットだけでなく、どのようなHTMLがajax呼び出しによって読み込まれているのでしょうか? –