我在使用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之后,新创建的文本框无法获得焦点。如何将光标放在文本框上?
答案 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()