Код ниже выбирает список файлов, выбранных для загрузки.Итерирование через впускные элементы для присвоения значений массиву
Это в основном добавляет входные элементы внутри DIV выше элемента формы:
<div id = "files_list"> </div>
Как хранить все имена атрибутов в массиве - fileNamesArray - по нажатию на кнопку отправки.?
Моя попытка я еще проверить, работает ли это:
// начало попытки
// мой подход: // предупреждает пользователя, если файл не выбран для загрузки и представить щелкаем еще
// я бы перебирать элементы ввода и содержащиеся в сНу ид = «files_list», принесите все имена файлов и нажать все значения в массив $ filesArray.
// грубая попытка
$("Submit").click(function() {
$filesArray
$(div#files_list).getElementById('input').each(function($filesArray) {
filesArray.push($this.attr("value"))
});
while($filesArray.size != 0) {
document.writeln("<p>" + $filesArray.pop() + "</p>");
}
}
// конец попытки: Я распечатать имена только для проверки
код ниже:
$(document).ready(function(){
var fileMax = 6;
$('#asdf').after('<div id="files_list" style="border:1px solid #666;padding:5px;background:#fff;" class="normal-gray">Files (maximum '+fileMax+'):</div>');
$("input.upload").change(function(){
doIt(this, fileMax);
});
});
function doIt(obj, fm) {
if($('input.upload').size() > fm) {alert('Max files is '+fm); obj.value='';return true;}
$(obj).hide();
$(obj).parent().prepend('<input type="file" class="upload" name="fileX[]" />').find("input").change(function() {doIt(this, fm)});
var v = obj.value;
if(v != '') {
$("div#files_list").append('<div>'+v+'<input type="button" class="remove" value="Delete" style="margin:5px;" class="text-field"/></div>')
.find("input").click(function(){
$(this).parent().remove();
$(obj).remove();
return true;
});
}
};
код для HTML формы :
<td><form action="test.php" method="post" enctype="multipart/form-data" name="asdf" id="asdf">
<div id="mUpload">
<table border="0" cellspacing="0" cellpadding="8">
<tr>
<td><input type="file" id="element_input" class="upload" name="fileX[]" /></td>
</tr>
<tr>
<td><label>
<textarea name="textarea" cols="65" rows="4" class="text-field" id="textarea">Add a description</textarea>
</label></td>
</tr>
<tr>
<td><input name="Submit" type="button" class="text-field" id="send" value="Submit" /></td>
</tr>
</table><br />
</div>
</form>
<p class="normal"></td>
Спасибо, пока я пытаюсь выяснить ваше решение, у меня есть несколько быстрых вопросов. Я понимаю, что оценка this.type == «file» будет оценивать true для элементов атрибута type = «file». но какое имя массива содержит ссылку на имена файлов. Я не могу понять, что вы назначаете значения входного элемента в массив fileNames, после блока if? Просто как бы напечатать элементы «имена файлов» в конечном массиве «fileNames» в вашем решении? Cheers Как бы вы напечатали значения в массиве? – Terman
Обновлено сообщение в соответствии с вашими потребностями. Приветствия. – aefxx