这“几乎”有效http://jsfiddle.net/RfWsy/4/
$(document).ready(function() {
function addRows(label, maxRows, minRows) {
$('.add-' + label).live('click', function() {
if ($("." + label + "-group").length < maxRows) {
var newrow = $('#' + label + '-template')
.clone().removeAttr('id');
newrow.insertAfter($(this)
.closest('.' + label + '-group'))
.find('.minus').show();
newrow.find('input').val('');
newrow.find('select').val('');
}
});
$('.remove-' + label).live('click', function() {
if ($("." + label + "-group").length > minRows) {
$(this).closest('.' + label + '-group').remove();
}
});
}
addRows('hs-community-service', 3, 1);
});
用户最多可以添加三组字段,然后删除除一个字段外的所有字段。这是有效的,但删除除一个集合之外的所有集合(通过单击顶部的第一个减号链接),尝试单击添加按钮,您会注意到它不会添加一组新字段。
感谢任何帮助。
答案 0 :(得分:2)
这是因为您删除了用作模板的div
如果你检查你的HTML,你会发现#hs-comunity-service-template
不存在。
修正以下代码:
$('.remove-' + label).live('click', function() {
var $element = $("." + label + "-group");
if ($element.length > minRows) {
$element.last().remove();
}
});
答案 1 :(得分:1)
如何更改线路:
$(this).closest('.' + label + '-group').remove();
为:
$("." + label + "-group").last().remove();
<强> jsFiddle example 强>
BTW,.live()已被弃用,最新版本的jQuery中支持.on()(这是示例使用的)。
答案 2 :(得分:0)
在审核了您的jsfiddle代码后,我注意到您将closest
组移至minus
链接,这恰好是第一个组,并且因为您要移除{{1该组的属性,要添加的组的选择器不再适用。我修改了您的代码,您可以在此处找到:http://jsfiddle.net/RfWsy/7/