0

次のコードがあります: http://jsfiddle.net/stomp/a8vjg/

選択フィールドの名前を extras[0] にする必要があることを除いて、すべてがうまく機能します。

誰でも助けることができますか?

乾杯、スティーブ

4

3 に答える 3

1

まず、選択要素に「extras」のみの名前を付ける必要があります...

<select name="extras">

次に、それを使用して取得します

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

extras[0] 、 extras[1] 、 ..... などでアクセスできる配列になります

于 2012-05-15T12:37:53.813 に答える
0

クローンを作成するときは、次のような sth が必要です。

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;

作業フォークを確認してください(削除して追加すると重複する可能性があります)

重複フィドルはありません (ノードを削除するとシリアル番号が保証されませんでした)

したがって、完璧な解決策は [保存] ボタンに 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 に答える
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 に答える