使用jQuery动态表单的单个div中的多个文本字段
使用这里的jQuery代码,但我试图在每个div中有多个文本输入。 它正确显示并增加并保存第一个元素的名称和ID,但对于第二个年龄输入,它仅存储第一个输入。
$(document).ready(function() { $('#btnAdd').click(function() { var num = $('.clonedInput').length; var newNum = new Number(num + 1); var newElem = $('#input' + num).clone().attr('id', 'input' + newNum); newElem.children(':first').attr('id', 'name' + newNum).attr('name', 'name' + newNum); $('#input' + num).after(newElem); $('#btnDel').attr('disabled',''); if (newNum == 5) $('#btnAdd').attr('disabled','disabled'); }); $('#btnDel').click(function() { var num = $('.clonedInput').length; $('#input' + num).remove(); $('#btnAdd').attr('disabled',''); if (num-1 == 1) $('#btnDel').attr('disabled','disabled'); }); $('#btnDel').attr('disabled','disabled'); });
这是我的新表单和jQuery代码的样子。
newElem.children(':first') .attr('id', 'age' + newNum) .attr('name', 'age' + newNum);
您的脚本只更新第一个输入,您需要循环并更新克隆div中的所有输入
$('#btnAdd').click(function () { var num = $('.clonedInput').length; var newNum = num + 1; var newElem = $('#input' + num).clone().attr('id', 'input' + newNum); newElem.find(':input').each(function () { $(this).attr('id', $(this).attr('id').replace(/\d+/, newNum)); $(this).attr('name', $(this).attr('name').replace(/\d+/, newNum)); }); $('#input' + num).after(newElem); $('#btnDel').attr('disabled', ''); if (newNum == 5) $('#btnAdd').attr('disabled', 'disabled'); });