2012-01-28 77 views
0

我甚至不知道這是可能的,但這裏有一個例子:AJAX替代物失去焦點文本框

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

通過AJAX我更換寄存器格,但如果是一家專注於一文本框內的註冊div,它會失去焦點時發生替換。有沒有辦法保持重點?

這裏是JavaScript:

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

    } 
    }); 
}); 

我有很多這種形式的內部投入,我怎麼能弄清楚如何重新調整

回答

4

如果你得到一個ID手柄的文本框,例如textbox,AJAX完成時,請致電:

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

一個更通用的解決方案。鑑於可聚焦元素具有ID S,書夾你的AJAX的東西,像這樣:

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

// .. AJAX, replacement .. 

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

參考focus()jQueryUsing jQuery to test if an input has focus

+0

我加一些例子JavaScript ...我將如何能夠做到這一點? – 2012-01-28 19:48:45

+0

@ChrisMuench查看我的更新。你可以使用上面的方式來設置你的'$(this.form).ajaxSubmit(..);'。 – paislee 2012-01-28 19:57:40

1

如果更換寄存器DIV中的標記,從早期領域的焦點將被刪除,請使用

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

關注與ID的文本框,如果你正在使用jQuery ..

+0

我加了一些例子javascript ...我怎麼能做到這一點? – 2012-01-28 19:52:08

+0

'var innerid = document.activeElement.id; '//在ajax調用之前獲得焦點的內部元素id。 //在ajax調用成功函數: '$(「#」+ innerid).focus();' – 2012-01-28 20:00:32