2011-09-18 16 views
4

私はフォーム内で次のHTMLを使用している場合:jQueryを使用してフォーム要素を複製してクリアするには?

<div class='example'> 
    <div class='row'> 
     <input name='first_field' type='text' value='Hello' /> 
     <input name='second_field' type='text' value='World!' /> 
    </div> 
</div> 

どのように私は、必要に応じて、その後、追加するように、取り除か値で、この(最初の)「行」のコピーを作成する行くのです、複数のユーザーエントリ。すでに値が存在する理由は(この例のように)データが編集されている場合です。

<div class='row'> 
     <input name='first_field' type='text' value='' /> 
     <input name='second_field' type='text' value='' /> 
    </div> 

私はの線に沿って考えている:私は取得したいと思います

var row = $('.example').find('.row:first-child').clone(); 
row.find('[name]').each(function() { 
    $(this).val(''); 
}); 

が、これは、値を削除していないようだということでは動作しません。また、外側をキャプチャしませんhtml(ラッパー)。

誰も助言できますか?

ありがとうございます。

+0

あなたは」 ":第一子.row" の後に不足していますか? –

答えて

2

jsに構文エラーがあります。 .find('.row:first-child).find('.row:first-child')である必要がありますが、クローニングの場合、 のデフォルトの動作では値を除外します。 これは、実際の入力要素を明らかに複製するためのものです。

http://jsfiddle.net/Yb2Ym/

var row = $('.example').find('.row:first-child').clone(); 
row.find('[name]').each(function() { 
    $(this).val(''); 
}); 
$(".row:last").after(row) 
関連する問題