2014-04-29 1 views
0

현재 cakephp로 개발 중입니다. jquery에 대한 많은 경험이 없지만이 작업에서는 jquery .clone() 함수를 사용하여 양식의 입력/선택 필드를 복제하려고합니다. 나는 이미 대본을 쓴다. 그러나 내가 생각했던 것처럼 그것은 효과가 없었다. 나는 인터넷 검색 후에도이 문제를 해결하는 방법을 모른다.새 이름 대신 Jquery 클론 복제 가능

문제는 다음과 같습니다 나는이 입력을 복제하고 내가 한 일이

 name="data[item][0][name]" 
    name="data[item][1][name]" 
    name="data[item][2][name]" 

같은 0 값을 ++ 높이려는 입력 name="data[item][0][name]", 의이 유형을 가지고 내가 추가 속성 버튼을 클릭하면됩니다 , 는 교체하고 같은 같은 정수 값을 복사합니다 :

name="data[item][1][name]" 
name="data[item][1][name]" 
: 나는 한 번 추가 버튼을 클릭 한 경우

나는 다시 추가 버튼을 클릭 :

name="data[item][2][name]" 
name="data[item][2][name]" 
name="data[item][2][name]" 

이 같은 이름을 복사 대신 problem.please들 날 도와 무엇인지 모르는 정말 value.I을 높일 수 있습니다. PHP :

이 내 코드입니다

<div class="form-group"> 
    <div class="col-lg-2" style="padding:none;" > 
            <p style="">Attribute</p> 
             <button type="button" class="btn btn-success" id="addAttribute"><i class="fa fa-plus-circle"></i> Add Attribute</button> 
           </div> 
           <?php $options = $attribute; //fetch some data from db?> 
           <div class="row" style=""> 
          <div class="col-md-9" style="" > 
           <div class="col-lg-3" style="" > 
            <h5 align="center"><u>Attribute Name</u></h5> 
            <div class="form-group"> 
             <div class="col-lg-12"> 

            <?php echo $this->Form->input('attribute.0.attribute_id',array('class'=>'form-control','label'=>false,'id'=>'Attribute','options'=>$options));?> 
            <div id="CloneAttribute"> 

        </div> 
           </div> 
          </div> 
           </div> 

           <div class="col-lg-3" style=""> 
            <h5 align="center"><u>Attribute Value</u></h5> 
            <div class="form-group"> 

             <div class="col-lg-12"> 
            <?php echo $this->Form->input('attribute.0.attribute_value',array('class'=>'form-control','label'=>false,'id'=>'Attribute2',));?> 
           <div id="CloneAttribute2"> 

        </div> 
           </div> 

jQuery를

$(document).ready(function(){ 

    index = 0; 
    $("#addAttribute").click(function(){ 
     index++; 
    $("#Attribute").clone().attr("id","Attribute" + index) 
     .appendTo('#CloneAttribute'); 
     //For each input fields contained in the cloned form... 
     $('#CloneAttribute').each(function(){ 
      $('#CloneAttribute select').attr("name",'data[attribute]['+index+'][attribute_id]');      
     }); 
}); 

당신이 유래 감사 ..

답변

2

시도 :

$(document).ready(function() { 
    index = 0; 
    $("#addAttribute").click(function() { 
     index++; 
     $("#Attribute").clone() 
     .attr("id", "Attribute" + index) 
     .attr("name", "data[item][" + index + "][name]") 
     .appendTo('#CloneAttribute'); 
    }); 
}); 
+0

감사 @ 제임스 더피. 효과가 있어요! :) –

관련 문제