我正在开发一个注册网站,其中有一部分我需要添加人员。我所做的是,当他们单击该人的姓名和姓氏下方的文本时,会出现另外两个字段(再次询问姓名和该人,因此它是上述字段的副本)。这是我使用clone()
方法来做的。因此,假设姓名和姓氏在一个 div 中,其中有一个名为“信息”的类。并且在<p>
包含时添加额外 div 的 id 称为:“add”。像这样:
<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
查询:
$("#companion").click(function() {
$(".information").toggle();
if ($('#companion').is(":checked")) {
$('#add').show();
}
else {
$('.companion').hide();
$('.companion').removeAttr('checked');
}
});
我澄清这一点是因为我尝试了你们向我展示的示例,但是当我单击复选框时,信息 div 不显示。我应该在我的原始帖子中提到这一点。真的很抱歉。