2011-12-17 3 views
0

변형 된 수의 밴드 멤버가 필요한 형식에서 입력을 복제하기 위해 버튼에 다음 코드를 사용하고 있습니다.jQuery에서의 복제 문제

되는 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 

는, 추가 입력이 제출되지 않습니다 마지막 입력 값은 첫 번째 입력 값이되고 새로 추가 된 입력 값은 코드가 나타내는 것처럼 지워지지 않습니다.

큰 도움을 주시면 감사하겠습니다. 사전에

감사합니다, 존

답변

3

난 당신이 대신 입력보다, 라벨에 ID = "이름"+ NUM을 추가하고 각 입력이 때문에이 있기 때문에 그것이 작동하지 않는 이유는 생각 정확한 정확한 ID. 당신이 말한대로

newElem.find('input').attr('id', 'name' + newNum).attr('name', 'name' + newNum).val(""); 
+0

내가 그것을 변경했지만 작동하지 않았다 :

newElem.children(':first').attr('val', '').attr('id', 'name' + newNum).attr('name', 'name' + newNum); 

은 다음과 같아야합니다

입력 셀렉터 첫 번째 선택을 변경

. 그러나 당신의 논리에 따라 newElem.find ('input') .attr ('val', '') .attr ('id', 'name'+ newNum) .attr ('name', ' 이름 '+ newNum); 이제는 모든 값 (감사합니다 !!!)을 제출합니다. 그러나 값은 여전히 ​​복제본에서 지워지지 않습니다. 생각? – jgravois

+0

@jgravois newElem.find ('input'). attr ('id', 'name'+ newNum) .attr ('name', 'name'+ newNum) .val (""); 나는 또한이 변화를 반영하기 위해 나의 대답을 업데이트했다. – flynfish

+0

완료 !!!! 감사! – jgravois