我有以下代码:http: //jsfiddle.net/stomp/a8vjg/
一切正常,除了我需要选择字段的名称为 extras[0],然后为下一个添加的字段命名为 extras[1],依此类推..
有人可以帮忙吗?
干杯,史蒂夫
我有以下代码:http: //jsfiddle.net/stomp/a8vjg/
一切正常,除了我需要选择字段的名称为 extras[0],然后为下一个添加的字段命名为 extras[1],依此类推..
有人可以帮忙吗?
干杯,史蒂夫
首先,您应该只用“extras”命名您的选择元素......
<select name="extras">
然后使用它
elemenets = $('[name=extras]')
它将是一个数组,您可以通过 extras[0] , extras[1] ,.....等访问
你的意思是:
case "add":
var newTag = tag.clone();
var i = $("#multi").find("select").length;
console.log(i);
newTag.find("select").attr("name", 'extras['+i+']');
tag.after(newTag.find("input").val("").end());
break;
参见:jsFiddle
克隆时你需要这样的东西:
case "add":
var cnt=jqEl.parent().siblings().size();
var cloned=tag.clone();
$(cloned).find("input").val("")
.end()
.find('select').attr('name','extra['+cnt+']');
tag.after(cloned);
break;
检查工作分叉(如果删除和添加可能会重复)
没有重复的小提琴 (如果删除节点,则无法确保序列号)
所以完美的解决方案可能是在 [Save] 按钮上添加 id 这是解决方案
function save(e) {
multiTags.find("select").each(function(i){
$(this).attr('name','extras['+i+']');
});
var tags = multiTags.find("input.tag").map(function() {
return $(this).val();
}).get().join(',');
alert(tags);
return false;
}