【发布时间】:2014-02-21 01:47:39
【问题描述】:
基于Generalizing jQuery dynamic add/remove form input for multiple forms 提出的问题。我能够在我的项目中添加几个功能,但无法在不使按钮消失的情况下克隆输入字段。
我尝试使用 jquery clone div and append it after specific div 克隆整个 div,但仍然不成功。
所以我的问题是如何克隆输入字段以及按钮,而不会使先前克隆的元素的按钮('add'、'cancel'和'save')消失。点击添加按钮后,最后一个元素的三个按钮都应该保留。
这是我尝试过的:jsfiddle
下面是java脚本:
$(document).ready(function() {
$("#table1").hide();
$("#table2").hide();
$("#services").click(function(){
$("#table1").slideToggle();
$("#table2").hide();
$("#cctable tr").attr('class', 'dinput');
$("#dbtable tr").attr('class', 'dbinput');
$('.btnDel').attr('disabled','disabled');
});
$("#products").click(function(){
$("#table2").slideToggle();
$("#table1").hide();
$("#dbtable tr").attr('class', 'dinput');
$("#cctable tr").attr('class', 'ccinput');
$('.btnDel').attr('disabled','disabled');
});
$('.btnAdd').click(function() {
var num = $('.dinput').length; // how many "duplicatable" input fields we currently have
var newNum = new Number(num + 1); // the numeric ID of the new input field being added
// create the new element via clone(), and manipulate it's ID using newNum value
var newElem = $('.dinput:last').clone();
// insert the new element after the last "duplicatable" input field
$('.dinput:last').after(newElem);
$(".dinput:last td:first").replaceWith( "<td>" + newNum + "</td>" );
// enable the "remove" button
$('.btnDel').attr('disabled','');
// business rule: you can only add 10 names
if (newNum == 10)
$('.btnAdd').attr('disabled','disabled');
});
$('.btnDel').click(function() {
var num = $('.dinput').length; // how many "duplicatable" input fields we currently have
$('.dinput:last').remove(); // remove the last element
// enable the "add" button
$('.btnAdd').attr('disabled','');
// if only one element remains, disable the "remove" button
if (num-1 == 1)
$('.btnDel').attr('disabled','disabled');
});
});
【问题讨论】:
-
小提琴的html代码中
.dinput在哪里?? -
你说的是哪个按钮?
-
@umair 请看我编辑的问题!
-
所以你想
clone和3 buttons和each tr? -
这是因为这些按钮不是表格的一部分。它们在一个单独的 div 中。您可以将这些按钮添加到
元素以使用文本字段克隆它们。
标签: javascript jquery