嗨,我正在创建一个成分应用程序,其表单如下所示:
如您所见,有一个span
包含 2 个文本字段和一个选择。您可以通过单击旁边的 X 删除任何跨度。
我的问题是我使用的是 jQuery 克隆,所以如果你删除所有的跨度,然后单击“添加成分”,没有要克隆的 div,所以它不会添加成分。
我该如何解决这个问题?感谢您的任何帮助!
嗨,我正在创建一个成分应用程序,其表单如下所示:
如您所见,有一个span
包含 2 个文本字段和一个选择。您可以通过单击旁边的 X 删除任何跨度。
我的问题是我使用的是 jQuery 克隆,所以如果你删除所有的跨度,然后单击“添加成分”,没有要克隆的 div,所以它不会添加成分。
我该如何解决这个问题?感谢您的任何帮助!
轻松修复,克隆文档上准备好的元素,但不要将其放入页面并使用它来克隆。
(function ($) {
$(document).ready(function () {
var myClone = $('#ingredientsCOUNT > span:first').clone();
$('#btnAddIngredients').click(function () {
var num = $('#ingredientsCOUNT span').length;
var newNum = new Number(num + 1);
myClone
.clone()
.attr('name', 'ingredient' + newNum)
.appendTo('#ingredientsCOUNT')
.fadeIn();
});
$('.formelementcontainer').on('click', '.deleteThis', function () {
var span = $(this).closest('span');
console.log(span);
span.fadeOut('slow', function () {
span.remove();
});
});
});
})(jQuery);
我的方法是不要让用户删除最后一个div
.
所以你总是从div
页面上的一种成分开始。让他们通过克隆添加新的。
当用户删除一种成分时,删除div
并检查剩余多少成分。如果只有一个,删除或隐藏删除按钮,这样他们就无法删除最后一个成分。