私は登録ウェブサイトを開発していますが、人を追加する必要がある部分があります。私がしていることは、彼らがその人の名前と姓の下にあるテキストをクリックすると、別の 2 つのフィールド (名前と人をもう一度尋ねるので、上のフィールドのコピーです) が表示されるということです。これはclone()
メソッドを使用して行います。名前と姓が、「情報」というクラスを持つ div 内にあるとします。そして、<p>
含まれているときに追加の div を追加する には、「add」という ID があります。このような:
<div class="information">
<label for="name">Name</label>
<input type="text" name="name[]"> //it's an array because there's gonna be probably more than one (if they click the "add" text)
<label for="last_name">Last Name</label>
<input type="text" name="last_name[]">
</div>
<p id="add">Add another person</p>
私のJavaScript(jquery)は次のとおりです。
$('#add').click(function(){
$('.information').clone().insertAfter('.information');
});
これの問題は、テキストの追加をクリックすると、最初の div がコピーされることです (それに何かを書いた場合は、それもコピーされます)。では、どうすればそれを解決できますか。それを行う他の方法はありますか?さらに、「情報」divを非表示にするボタンを作成する簡単な方法はありますか(ユーザーが追加したい人数を後悔した場合)。
どんな推薦も好評です。前もって感謝します。
編集:申し訳ありません。言い忘れた大事なことがあります。情報クラスは、ユーザーがチェックボックスをクリックした場合にのみ表示されます (他の人を追加したくない可能性があるためです。チェックボックスのコードは次のとおりです。
HTML (情報クラスの上):
<input type="checkbox" id="companion" />Companion
JQuery:
$("#companion").click(function() {
$(".information").toggle();
if ($('#companion').is(":checked")) {
$('#add').show();
}
else {
$('.companion').hide();
$('.companion').removeAttr('checked');
}
});
皆さんが私に見せてくれた例を試したので、これを明確にしますが、チェックボックスをクリックすると情報divが表示されません。これについては、元の投稿で言及する必要がありました。本当にすみません。