次のコードがあります: http://jsfiddle.net/stomp/a8vjg/
選択フィールドの名前を extras[0] にする必要があることを除いて、すべてがうまく機能します。
誰でも助けることができますか?
乾杯、スティーブ
次のコードがあります: http://jsfiddle.net/stomp/a8vjg/
選択フィールドの名前を extras[0] にする必要があることを除いて、すべてがうまく機能します。
誰でも助けることができますか?
乾杯、スティーブ
まず、選択要素に「extras」のみの名前を付ける必要があります...
<select name="extras">
次に、それを使用して取得します
elemenets = $('[name=extras]')
extras[0] 、 extras[1] 、 ..... などでアクセスできる配列になります
クローンを作成するときは、次のような 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;
}
つまり:
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