2012-08-06 4 views
0

특정 행을 복제하는 옵션이있는 테이블에 양식이 있으므로 (사용자가 필요에 따라 더 많은 필드를 추가 할 수 있음). 복제가 잘 작동하고 이벤트 데이터 및 처리기가 올바르게 작동합니다. 그러나 양식을 제출하면 복제 된 양식 필드 데이터가 게시되지 않습니다. 다음은 잘 작동하는 필드를 복제하고 중복 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> 
+0

'.find (': text)'오타가 누락 되었습니까? 또는 실제 코드에 오류가 있습니까? 힌트 : * 구문 강조 표시시보기 *. –

+0

네, 그건 오타였습니다. – Brickgame

+0

이 jQuery 코드가 실행 된 후에 출력 HTML을 보았습니까? 복제 된 fielsd는 Unique Name, OR, 같은 이름에'[] '를 추가해야합니다. 즉'foo []'입니다. 그러면 모든 값은'foo [0]','foo [1]'...'foo [index]'에 저장됩니다.이 접근법은 카운터를 사용하지 못하게합니다. 고유 ID에 대해서는'ID' 대신'class'를 사용할 수 있습니다 .. – DavChana

답변

1

. 게시 된 데이터를 추가 필드로 덮어 쓰지 않으려면이 값을 변경해야합니다.

+0

복제 된 필드의 name 속성에 변경 사항을 추가했지만 여전히 작동하지 않습니다. 업데이트 된 코드 샘플을 참조하십시오. – Brickgame

+0

샘플 HTML 소스를 보는 것이 도움이 될 것입니다. –

0

나는 게시물이 어떻게 작동하는지 오해 한 것 같습니다. 실제로 변수를 게시하는 데 사용되는 복제 된 필드의 새 이름을 만들어야합니다. 새로운 ID를 생성하는 것은 유효한 html을 생성하는 데만 필요하지만 실제 게시와는 아무런 관련이 없습니다.

관련 문제