iframeを備えたJQueryシックボックス。入力フィールドにフォーカスを設定します

StackOverflow https://stackoverflow.com/questions/1031032

質問

こんにちは、アプリケーションに jquery thickbox modal popu pがありました。 ( iframe
すべてうまくいきますが、フォーカス特定の入力フィールド dに設定したいです。

Iframeは通常のaspxページを読み込むため、$(document).ready(.. focus);
そのスクリプトをIFrameコードに入れます

ただし、これは機能しません。 「準備完了」の後、シックボックスによって他のコードが実行されるため、再びフォーカスが失われます。 (例えば..メカニズムが機能するように入力フィールドの値を設定できます。

フォーカスを設定するのを手伝ってくれる人はいますか?以下は私の呼び出しコードです。

<a href="page.aspx?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=550&width=700" title="Add" class="thickbox">Add</a>
役に立ちましたか?

解決

ThickBoxは、iframe要素のonloadイベントでメソッドを呼び出すことにより、iframeのコンテナを表示します。 iframeは、iframeのコンテンツが読み込まれるまで親ページに表示されないため、$(document).ready(.. focus);を使用してフォーカスを設定することはできません。これを回避するために見つけた最も簡単な方法は、setTimeoutを使用して、iframeが表示されるまでフォーカスを設定する関数呼び出しを遅らせることです。

jQuery(document).ready(function() {        
    setTimeout(function(){
        $('#YourElementID').focus();   
    },200);
});

注:setTimeoutに渡すミリ秒値を調整する必要がある場合があります。

他のヒント

docs.jquery.comから:

  

一致した各要素のフォーカスイベントをトリガーします。

     

これにより、フォーカスイベントにバインドされているすべての関数が実行されます。   これは、基になる要素のfocusメソッドを実行しないことに注意してください。

つまり、コードは次のようになります。 $( '#input_field')。get(0).focus()

違いは、私の例ではDOM要素自身のフォーカス要素を使用しているのに対して、あなたのものではjQueryを使用していることです。

それでも動作しませんが、おそらく正しい方向への一歩です。

乾杯、

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top