Мне нужно создать несколько динамических форм.Эти формы содержат элемент ввода файла.Я должен загрузить несколько файлов.Для динамической генерации форм я использовал метод клонирования Jquery, для многократной загрузки файлов я использовал плагин jquery fyneworks (http://www.fyneworks.com/jquery/multiple-file-upload/).
При каждом клонировании формы я буду назначать идентификаторы динамически. После клонирования формы плагин файла не работает должным образом.Он всегда добавляется к первой форме, даже если я назначаю идентификаторы динамически.
Я создал простой тестовый сценарий со следующим кодом:
<html>
<head>
<script src='jquery-1.6.1.js' type="text/javascript"></script>
<script src='jquery.MultiFile.js' type="text/javascript" language="javascript"></script>
<script src='jquery.blockUI.js' type="text/javascript" language="javascript"></script>
<script>
var i=0;
$(function(){
//$("#div0").hide();
});
function addMoreForms(){
i++;
var x = $("#div0").clone(true);//.insertAfter($("#myForm"));
$(x).attr("id", "div"+i);
$(x).find("#myForm0").attr("id","myForm"+i);
$(x).find("#file0_wrap").attr("id","file"+i+"_wrap");
$(x).find("#file0_wrap_list").attr("id","file"+i+"_wrap_list");
$(x).find("#file0").attr("id","file"+i).attr("name","file"+i).attr("class","multi");
//$("#myForm").append('<input type="file" name="files[]" class="multi"/>')
$(x).show();
$(x).insertAfter('#div'+(i-1));
}
</script>
</head>
<body>
<div id="div0">
<form id="myForm0" action="your-action">
<input id="file0" type="file" name="file0" class="multi" maxlength="3"/>
</form>
</div>
<div>
<a href="#" onclick="addMoreForms()">Add More</a>
</div>
</body>
</html>