在需要变量数量的乐队成员的表单中,我在按钮上使用以下代码来复制输入。
HTML的片段是这样的:
<div id="input1" style="margin-bottom:4px;" class="clonedInput">
<label for="band_member">Band Member: </label>
<input type="text" name="name1" id="name1" />
</div>
<div>
<input type="button" id="btnAdd" value=" add another member " />
</div>
这个jquery在文档就绪函数中:
$('#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( 'val', '' ).attr('id', 'name' + newNum).attr('name', 'name' + newNum);
$('#input' + num).after(newElem);
$("#band_member_count").val( newNum );
}); // end btnAdd click
提交表单时,未提交添加的输入,最后一个条目成为第一个输入的值,并且不会像代码所示那样清除每个新添加的输入的值。
我非常感谢对此有任何帮助。
提前致谢, 乔恩
答案 0 :(得分:3)
我认为它不起作用的原因是因为你在标签中添加了id =“name”+ num,而不是输入,因此每个输入都具有相同的完全id。
将第一个选择器更改为输入选择器:
newElem.children(':first').attr( 'val', '' ).attr('id', 'name' + newNum).attr('name', 'name' + newNum);
应该是:
newElem.find('input').attr('id', 'name' + newNum).attr('name', 'name' + newNum).val("");