使用按钮删除输入表单失败

在这种forms中,有一个添加按钮来添加输入(2个输入)。 但删除按钮无法正常工作..

我想要的是,每个新的输入(2个输入)与添加按钮一起添加,以便能够删除它们(2再次)以及删除按钮。

现在删除按钮不会删除添加的2个输入。

这是bootply

var counter6=0; $('#formType1') .on('click', '.addButton6', function() { counter6++; var $template = $('#dose1'), $clone = $template .clone() .removeClass('hide') .removeAttr('id') .attr('data-dose1-index', counter6) .insertBefore($template); // Update the name attributes $clone .find('[name="strofes"]').attr('name', 'strofes-' + counter6).end(); var $template = $('#dose2'), $clone = $template .clone() .removeClass('hide') .removeAttr('id') .attr('data-dose2-index', counter6) .insertBefore($template); $clone .find('[name="uesi"]').attr('name', 'uesi-' + counter6).end(); }) // Remove button click handler .on('click', '.removeButton6', function() { counter6 = counter6-1; var $row = $(this).parents('.form-group'), index = $row.attr('data-dose1-index'); // Remove element containing the fields $row.remove(); }); 
     

通过对代码进行一些更改,我得到了这个function。 变化是

添加此行

  $clone.find('.removeButton6').data('to-remove', counter6); 

对你的克隆$('#dose1')$('#dose2')要在删除按钮上有一个指针,说明稍后点击它时要删除哪个div。

并更改您的删除function,如下所示。

 // Remove button click handler .on('click', '.removeButton6', function() { counter6 = counter6 - 1; var indexToRemove = $(this).data('to-remove'); // get the value set in the above code. $('[data-dose1-index="' + indexToRemove + '"]').remove(); //remove dose1 of that value $('[data-dose2-index="' + indexToRemove + '"]').remove(); // remove dose2 of that value }); 

以下是工作片段。

 var counter6 = 0; $('#formType1') .on('click', '.addButton6', function() { counter6++; var $template = $('#dose1'), $clone = $template .clone() .removeClass('hide') .removeAttr('id') .attr('data-dose1-index', counter6) .insertBefore($template); // Update the name attributes $clone .find('[name="strofes"]').attr('name', 'strofes-' + counter6).end(); $clone.find('.removeButton6').data('to-remove', counter6); // add this counter for later removing it var $template = $('#dose2'), $clone = $template .clone() .removeClass('hide') .removeAttr('id') .attr('data-dose2-index', counter6) .insertBefore($template); $clone .find('[name="uesi"]').attr('name', 'uesi-' + counter6).end(); $clone.find('.removeButton6').data('to-remove', counter6); // add this counter for later removing it }) // Remove button click handler .on('click', '.removeButton6', function() { counter6 = counter6 - 1; var indexToRemove = $(this).data('to-remove'); $('[data-dose1-index="' + indexToRemove + '"]').remove(); $('[data-dose2-index="' + indexToRemove + '"]').remove(); });