在jquery中重新排列数组

时间:2012-02-13 13:23:50

标签: c# javascript jquery html

我现在遇到一个问题

Html

<input type="text" name="Answers[0]" class="ahsan required" ><a href="#">Remove</a>
<input type="text" name="Answers[1]" class="ahsan required" ><a href="#">Remove</a>
<input type="text" name="Answers[2]" class="ahsan required" ><a href="#">Remove</a>
<input type="text" name="Answers[3]" class="ahsan required" ><a href="#">Remove</a>
<input type="text" name="Answers[4]" class="ahsan required" ><a href="#">Remove</a>
<input type="text" name="Answers[5]" class="ahsan required" ><a href="#">Remove</a>

以上输入是动态生成的,显然如果用户可以添加行,那么他也可以删除行但是如果他从中心删除行并提交表单我无法获取数组中的所有文本框值。现在我希望当我点击删除任何文本框然后文本框被删除,但所有剩余的文本框应重新排序。我可以这样做请帮助我。提前致谢

2 个答案:

答案 0 :(得分:1)

除非您将数字索引用于其他目的,只是尝试从名称中删除它们,具有

之类的行
<input type="text" name="Answers[]"...

因此无需重新排序输入。您还应该能够在服务器端处理

上获得一个数组

否则,每次更新DOM都会使用类似

的内容
$(".ahsan").each(function(i){
    $(this).attr({name : "Answer[" + i + "]"});
})

答案 1 :(得分:0)

function reArrangeItems(){
    var i = 0;
    $(".ahsan").each(function(){
       $(this).attr({name : "Answer[" + (i++) + "]"});
    })
}

在插入和删除后调用此函数