2012-01-28 14 views
0

に焦点を当て失う置き換える:AJAXコンテンツが、これは可能ですが、ここの例であれば私も知っていないテキストボックス

<div id="register"> 
//bunch of markup including inputs 
</div> 

AJAX経由に焦点がある場合、私は、レジスタのdivを交換するが、レジスタdiv内のテキストボックスに置き換えられたときにフォーカスが失われます。フォーカスを維持する方法はありますか?ここ

ではJavaScriptです:

$("#cart_contents input").change(function() 
{ 
    $(this.form).ajaxSubmit({target: "#register_container", success: function() 
    { 

    } 
    }); 
}); 

私はこのフォーム内の入力の多くを持って、どのように私は、例えば、あなたがテキストボックスのIDハンドルを取得した場合

答えて

4

を再び集中する方法を見つけ出すことができますtextbox AJAXが完了したときに、呼び出し:

$('#textbox').focus(); 

より一般的なソリューション

var focusedId = $(document.activeElement).attr('id'); 

// .. AJAX, replacement .. 

$('#' + focusedId).focus(); 

リファレンスfocus()jQueryUsing jQuery to test if an input has focus:与えられたフォーカス可能な要素はそうのようなあなたのAJAXのものをブックエンド、ID秒を持っています。あなたはレジスタのdiv内のマークアップを交換した場合、以前のフィールドからフォーカスが取り除かれる

+0

..あなたはjqueryのを使用している場合

$("#"+someid).focus(); 

はidを持つテキストフィールドに注力するために使用しますいくつかの例のJavaScript ...私はこれを行うことができますか? –

+0

@ChrisMuenchは私の更新を見てください。あなたは '$(this.form).ajaxSubmit(..);'を上記のように予約できます。 – paislee

1

、私は追加

+0

私はいくつかの例のjavascriptを追加...どのように私はこれを行うことができますか? –

+0

'var innerid = document.activeElement.id; '// Ajax呼び出しの前にフォーカスを持つ内部要素IDを取得する。 // ajaxコール成功関数内: '$("# "+ innerid).focus();' –

関連する問題