我必须通过ajax发布数据,并且需要name属性数组索引才能重置。
例如:
第一行:
<select data-placeholder="Colours" class="colours chosen-select"
multiple tabindex="4" name="colours[0][]">
<option value="">Red</option>
<option value="">Orange</option>
</select>
第二行动态添加:
<select data-placeholder="Colours" class="colours chosen-select"
multiple tabindex="4" name="colours[1][]">
<option value="">Red</option>
<option value="">Orange</option>
</select>
每次添加时,名称颜色数组必须增加1,并在删除时重置值。
我环顾四周,但没有找到解决方案。
这是我所拥有的:
添加:
var tbl = $("#service");
$("#addRowBtn").click(function () {
var count = $('#rowCount tr').length;
$("<tr>" +
"<td>" +
"<select data-placeholder=\"Colours\" class=\"colours chosen-select\"
multiple tabindex=\"4\"\ name=\"colours[" +
count +
"][]\">" +
"<option value=\"\">Red</option>" +
"<option value=\"\">Orange</option>" +
"</select></td>" +
"<td><i style=\"color:#d64830\" class=\"delRowBtn fa fa-minus-
circle\"></i></td></tr>").appendTo(tbl);
删除行:
$(document.body).delegate(".delRowBtn", "click", function () {
$(this).closest("tr").remove();
});
我添加了var count以增加索引,但是删除时无法重置值。
请帮助!
答案 0 :(得分:0)
每次删除项目时,您都可以尝试循环使用表的所有选择并更改每个选择的属性“名称”。
$('#rowCount tr td select').each(function(idx, item){
$(item).attr("name", "colours[" + idx + "][]")
});
更新
喜欢建议@ChayimFriedman先前建议的酷版本
$('#rowCount select').attr('name', function(idx) { return "colours[" + idx + "][]"; });