2014-03-04 23 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