2011-09-10 9 views
1

フォーカスを取得したときにテキストフィールドのHTMLを置き換えるためにjQueryを使用しています。私のコードは次のようになります。jQueryを使用して新しく置き換えられたテキストフィールドにフォーカスを移動

<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

手動.focus()の引数なしのオーバーロードを使用して、新しい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(); 
     } 
    }); 
1

このお試しください:この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(); 
}); 
0

を:

$('<input type="text" value="" name="..." id="name">').appendTo('selector').focus() 
関連する問題