0

我有以下代码:http: //jsfiddle.net/stomp/a8vjg/

一切正常,除了我需要选择字段的名称为 extras[0],然后为下一个添加的字段命名为 extras[1],依此类推..

有人可以帮忙吗?

干杯,史蒂夫

4

3 回答 3

1

首先,您应该只用“extras”命名您的选择元素......

<select name="extras">

然后使用它

elemenets = $('[name=extras]')

它将是一个数组,您可以通过 extras[0] , extras[1] ,.....等访问

于 2012-05-15T12:37:53.813 回答
0

你的意思是:

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

于 2012-05-15T12:37:44.843 回答
0

克隆时你需要这样的东西:

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;
    }
于 2012-05-15T12:36:30.760 回答