jQueryライブラリがロードされた時点でモーダルウィンドウが非表示になっていると思いますが、問題が発生します。
あなたは正しく推測しました、おそらくあなたは特定のイベントの後にあなたのモーダルダイアログのコンテンツをロードします。
今コード:
$('#name').focus(function() {
console.log('do something');
});
おそらく$(document).ready()イベントに関連付けられています。このイベントは、新しいドキュメントが読み込まれるたびに発生しますが、ajax呼び出しが完了しても発生しません。
この問題を解決するには、必要な関数を実行するダイアログの読み込みイベントのデリゲートをアタッチする必要があります。jQueryのバージョンに応じてAPIまたはLIVEを参照してくださいhttp://api.jquery.com/on/
必要に応じて、行われるクリックイベントごとに汎用デリゲートを使用し、次のようにクリックが行われるたびにフォーカスイベントをアタッチしてみてください。
$(document).on("click", "#name", function() {
$(this).focus(function() {
console.log('do something');
});
});
これにより、クリックが行われるたびに、つまり#name要素が存在する場合に、focus関数が#name要素にアタッチされようとします。