ajax替换内容失去了对文本框的关注

时间:2012-01-28 19:34:45

标签: 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()
    {

    }
    });
});

我在这个表单中有很多输入,我怎样才能弄清楚如何重新聚焦

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

如果替换寄存器div中的标记,则会删除早期字段中的焦点,使用

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

如果您使用的是jquery,请专注于带有id的文本字段。