我有一个表单,它允许用户通过底行中的按钮添加一个新的表格行,这一切都运行良好,还允许用户删除一个表格行,但总是让一行可见。你可以在这个jsFiddle看到一个工作示例。
我现在需要对“删除”按钮的显示方式进行一项更改。目前只有一行时它不会出现,但是当您添加一行时,它会出现在除最后一行之外的所有行中。我需要使用以下规则更改它:
(i) 如果只有一行,则不应出现删除按钮 (ii) 如果有 2 行,则删除按钮应出现在所有行上,但如果一行是删除规则 (i) 适用且不应该有删除按钮再次 (iii) 如果有 3 行,则删除按钮应出现在所有行上,但如果它们删除 2 行,则适用规则 (i)
等等。
我将删除按钮隐藏在第一行,如下所示:
<td>
<input type="button" class="button mt5 delbtn" value="Delete" id="deleteRowButton" name="deleteRowButton" style="display: none"/>
</td>
这是添加/删除新行时运行的脚本:
$('#lastYear').on('click', '.delbtn', function () {
$(this).closest('tr').remove()
});
var newIDSuffix = 2;
$('#lastYear').on('click', '.addbtn', function () {
var thisRow = $(this).closest('tr')[0];
$(thisRow).find('.delbtn').show();
var cloned = $(thisRow).clone();
cloned.find('input, select').each(function () {
var id = $(this).attr('id');
id = id.substring(0, id.length - 1) + newIDSuffix;
$(this).attr('id', id);
});
cloned.insertAfter(thisRow).find('input:text').val('');
cloned.find('.delbtn').hide();
cloned.find("[id^=lastYearSelect]")
.autocomplete({
source: availableTags,
select: function (e, ui) {
$(e.target).val(ui.item.value);
setDropDown.call($(e.target));
}
}).change(setDropDown);
$(this).remove();
newIDSuffix++;
});
在这一点上我完全被难住了——感谢任何解决这个问题的方法。谢谢!