2011-07-13 13 views
0

jqueryダイアログウィンドウ内の入力テキストボックスにフォーカスを設定する方法はありますか?私はここでいくつかの他の質問を見てきましたが、回答者を見つけることができませんでした。jqueryダイアログウィンドウのテキストボックスにフォーカスを設定するにはどうすればいいですか?

私は..

, open: function() { $(this).find("#inp").focus(); } 

を試してみましたが、それはうまくいきませんでした。

アイデア?ありがとう。

UPDATE

ダイアログウィンドウの内容は、AJAXコールスルーフェッチされます。

+0

最初にあなたの 'open'関数が実行されているかどうかをテストします – Rafay

+0

はい、FF、IE、Cromeでチェックされています。それは.. – Kay

+0

ロード機能を含むスクリプトを投稿してください... – Vivek

答えて

1

$("#inp").focus(); 

を試してみてくださいしかし、あなたは、AJAXとの対話内容をロードしている場合、あなたはそう

$('#result').load('ajax/test.html', function() { 
    $("#inp").focus(); 
}); 
+0

はいそのajax ..コールバックに焦点を当てる任意のコード例? – Kay

+0

私はコンテンツを読み込むためにload()関数を使用しています。 – Kay

+0

ok私は私の答えを編集しました – Ergec

0

コールバック関数内でフォーカスを置く必要があり、開いている機能が働き、右?あなたが#inpを見つけたかどうかチェックしましたか?ただ、

console.log($('#inp')); 

を行うと、要素は、時間焦点に実際に存在する場合に呼び出されている)(参照してください。そうでない場合は、DOMが構築されていない可能性があります(私はあなたのopen()関数がAjaxコールのコールバック内から呼び出されると仮定しています)。

'成功'と 'エラー' Ajaxコールバックは、呼び出しが終了した後で呼び出されていますが、結果として生じるすべてのDOM操作が終了した後である必要はありません。私はこれを解決する一つの(ややハック)の方法は、数ミリ秒のために焦点を遅延させることによってだった:

setTimeout(function() { 
    $(this).find("#inp").focus(); 
}, 50); 

これは場所に#inp入れてDOMに少し時間を与えます。

関連する問題