특정 행을 복제하는 옵션이있는 테이블에 양식이 있으므로 (사용자가 필요에 따라 더 많은 필드를 추가 할 수 있음). 복제가 잘 작동하고 이벤트 데이터 및 처리기가 올바르게 작동합니다. 그러나 양식을 제출하면 복제 된 양식 필드 데이터가 게시되지 않습니다. 다음은 잘 작동하는 필드를 복제하고 중복 ID 문제를 해결하는 코드입니다. 왜 복제 된 필드가 제출되지 않는지에 대한 제안/도움은 절대적으로 감사 할 것입니다.
$('#btnAddNewField').click(function() {
var currLength = $('.cloneInput').length;
var newID = new Number(currLength + 1);
var clonedField = $('#field_id' + currLength).clone(true);
clonedField[0].setAttribute('id', 'field_id' + newID);
clonedField.find(':text').each(function() {
this.setAttribute('id', this.getAttribute('id') + newID);
this.setAttribute('name', this.getAttribute('name') + newID);
});
$('#field_id' + currLength).after(clonedField);
HTML : 당신이 복제 된 양식 필드의 이름 속성을 변경하는 곳 난 아무데도 보이지 않는
<tr id="field_id_1">
<td>
<table>
<tr>
<td>Pick option</td>
<td>
<select name="choice_1" id="choice_1" parent="true">
<option value="null" selected="selected">Select</option>
<option value="1">option 1</option>
<option value="2">option 2</option>
<option value="3">option 3</option>
</select>
</td>
</tr>
<tr>
<td>Pick next option</td>
<td>
<select name="next_choice_1" id="next_choice_1">
<option value="null" selected="selected">Select next</option>
</select>
</td>
</tr>
<tr>
<td>Image:</td>
<td><input type="file" name="image_1" id="image_1"/></td>
</tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="button" value="Add New" id="btnAddNewField" />
<input type="button" value="Remove" id="btnDelField" />
</td>
</tr>
'.find (': text)'오타가 누락 되었습니까? 또는 실제 코드에 오류가 있습니까? 힌트 : * 구문 강조 표시시보기 *. –
네, 그건 오타였습니다. – Brickgame
이 jQuery 코드가 실행 된 후에 출력 HTML을 보았습니까? 복제 된 fielsd는 Unique Name, OR, 같은 이름에'[] '를 추가해야합니다. 즉'foo []'입니다. 그러면 모든 값은'foo [0]','foo [1]'...'foo [index]'에 저장됩니다.이 접근법은 카운터를 사용하지 못하게합니다. 고유 ID에 대해서는'ID' 대신'class'를 사용할 수 있습니다 .. – DavChana