使用jQuery聚焦到新替换的文本字段

时间:2011-09-10 16:21:33

标签: jquery

我在使用jQuery来获取焦点时替换文本字段的HTML。我的代码如下所示:

<div id="my_field">
    <%= f.text_field :first_name, :value => "Enter Name" %>
</div>

我的jQuery用于替换my_field中的HTML:

$("#my_field")
    .delegate('#my_field input', 'focus', function(e){
        if($(this).attr('type') == 'text'){
            $(this).parent().html('<input type="text" value="" name="..." id="name">');
        }
    });

在替换HTML之后,新创建的文本框无法获得焦点。如何将光标放在文本框上?

3 个答案:

答案 0 :(得分:1)

试试这个:

$("#my_field")
.delegate('#my_field input', 'focus', function(e){
    if($(this).attr('type') == 'text'){
        $(this).parent().html('<input type="text" value="" name="..." id="name">');
    }
    $("#name").focus();
});

答案 1 :(得分:0)

使用.focus()的no-args重载手动关注新的input

$("#my_field")
    .delegate('#my_field input', 'focus', function(e){
        if($(this).attr('type') == 'text'){
            $(this).parent().html('<input type="text" value="" name="..." id="name">');
            $("#name").focus();
        }
    });

答案 2 :(得分:0)

试试这个:

$('<input type="text" value="" name="..." id="name">').appendTo('selector').focus()