私はサイズを動的に入力配列を維持することができますので、私はdivを複製するためにjqueryを使用しています。そのうまく動作しますが、私はそれを見て、クローンの前にクラスを追加すると、クローンからクラスを削除した後、古いクローンを削除した後に古いクローンを削除することができます。または、これを行うより効率的な方法が全体的に考えられます。より効率的なjqueryのクローニング
相続人のhtml:
<div class="reg_heading_description" id="bio_brothers"></div>
<div class="bio_brother">
<div class="clearfix">
<label>First Name</label>
<div class="input">
<input type="text" name="bio_brother_first[]" style="float:left"/>
<label>Last Name</label>
<input type="text" name="bio_brother_last[]" style="margin-left:20px;"/>
</div>
</div>
<div class="clearfix">
<a href="#" class="more_bio_brother more_relatives" >Add Another</a>
</div>
</div>
</div>
とHERESにjqueryの、そしてそのはいいいえ競合モード
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery(".more_bio_brother").click(function() {
var here = jQuery(this).closest('div').parent();
var names = jQuery(here).find('input');
//validate
var check = 0;
jQuery.each(names, function() {
if (jQuery(this).val() == "") {
check = 1;
}
});
if (check == 1) {
alert('You must enter a first and last name for this biological brother before you can add another.');
return false;
}
//disable prior
jQuery.each(names, function() {
jQuery(this).attr('readonly', true);
});
//add new
jQuery(here).addClass('old');
jQuery('#bio_brothers').before(jQuery(here).clone(true));
jQuery.each(names, function() {
jQuery(this).attr('readonly', false);
jQuery(this).val("");
});
jQuery(here).removeClass('old');
jQuery('.old a').remove();
return false;
});
});
</script>
ドキュメント準備機能に "$"を渡すと、安全に$エイリアスを使用できます。 –
要約すると、2つの名前入力とアクション(新規追加)リンクを含むdivがあります。アクションが実行されると、入力結果が無効になってリンクが削除された状態で、最終結果がこのdivの 'クローン'(広義の意味で)になり、 '新しい'文字通りノード単位ではなく)空白の入力と光沢のある「新規追加」ボタンを使用して再度使用することができます。あなたの質問は、「私はこれを最も効果的な方法でやっているのですか、それとも良い方法がありますか?」 –
。それがそこにあるのですが、より効率的なように思えます。 – Rooster