2014-03-04 46 views
1

我在表單上有動態元素和字段。如何在使用jquery刪除動態元素之後按名稱和id重新排序元素?

JS:

<script> 
function hapus(i){ 
    $("#field"+i).remove(); 
} 
</script> 

HTML:

<div class="fieldwrapper" id="field1"> 
     <select class="fieldtype" id="labensmittel1" name="data[Tagebuch][labensmitell1]" style="width:160px;"> 
      <option value="data">data</option> 
     </select> 
     <input type="text" value="" id="qty1" name="data[Tagebuch][qty1]" class="fieldname" /> 
     <input type="text" value="" id="labendata1" name="data[Tagebuch][labendata1]" class="fieldname" /> 
     <input type="button" class="hapus1" value="-" style="width:20px;" id="hapus1" onclick="hapus(1);" /> 
</div> 
<div class="fieldwrapper" id="field2"> 
     <select class="fieldtype" id="labensmittel2" name="data[Tagebuch][labensmitell2]" style="width:160px;"> 
      <option value="data">data</option> 
     </select> 
     <input type="text" value="" id="qty2" name="data[Tagebuch][qty2]" class="fieldname" /> 
     <input type="text" value="" id="labendata2" name="data[Tagebuch][labendata2]" class="fieldname" /> 
     <input type="button" class="hapus2" value="-" style="width:20px;" id="hapus2" onclick="hapus(1);" /> 
</div> 
<div class="fieldwrapper" id="field3"> 
     <select class="fieldtype" id="labensmittel3" name="data[Tagebuch][labensmitell3]" style="width:160px;"> 
      <option value="data">data</option> 
     </select> 
     <input type="text" value="" id="qty3" name="data[Tagebuch][qty3]" class="fieldname" /> 
     <input type="text" value="" id="labendata3" name="data[Tagebuch][labendata3]" class="fieldname" /> 
     <input type="button" class="hapus3" value="-" style="width:20px;" id="hapus3" onclick="hapus(3);" /> 
</div> 

如何我可以重新排列的名字字段?例如,如果我刪除field2div id='field3'將變爲div id='field2'然後選擇和輸入字段ID名稱從id="labensmittel3"name="data[Tagebuch][labensmitell3]"將被移動到id="labensmittel2"name="data[Tagebuch][labensmitell2]"

感謝

+1

爲什麼不只是在這裏使用數組(包括jQuery選擇器)? –

+0

看到http://jsfiddle.net/arunpjohny/4rWv6/1/ –

+1

你爲什麼依賴於ID ... –

回答

4

怎麼樣一個基本的迭代中刪除發生後重置您的所有ID:

var fields = $('.fieldwrapper'); 
var count = 1; 
$.each(fields, function() { 
    $(this).attr('id','field' + count); 
    count++; 
}); 
+0

如何也改變輸入框名稱像name =「data [Tagebuch] [qty3]」也是如此更改爲name =「data [Tagebuch] [qty2]」 – user3305431

+0

同樣的事情。只需將選擇器改爲'$('。fieldwrapper> .fieldname')',然後在循環中:'this.attr('name','newValue')' – ElliotSchmelliot