创建后关注输入

时间:2011-11-13 15:00:51

标签: jquery

我想在点击第一个输入后用文本输入替换密码输入,我的代码创建了它,但它没有关注新输入,我想改变它。

这是我的代码。

$('.input_center input:text').click(function(){
var padre = $(this).parent();
                var passInput = $(document.createElement("div"));
                passInput.html('<input type="password">');
                padre.append(passInput);
                passInput.focus();
                $(this).remove();
});

passInput.focus()没有做焦点,所以我不知道如何完成它。

2 个答案:

答案 0 :(得分:6)

passInput<div>元素,而不是<input>,这就是它无法获得焦点的原因。

将其更改为:

passInput.find("input").focus();

你实际上可以将整个函数重写为一个链式语句,如下所示:

$(this)
    .parent()
    .append($(document.createElement("div"))
        .append($('<input type="password">').focus())
    )
    .end()
    .remove();

尽管如此,我还不知道在将元素添加到DOM之前它是否适用于.focus()元素。

答案 1 :(得分:3)

尝试

var v = $('<div><input class="pwd" type="password" /></div');
padre.appendTo(v);
$('.pwd').focus();

添加然后调用代码以获得焦点可能会有所帮助。