Как удалить динамический элемент?
Есть форма для динамического добавления картинок
<form action="uploads" method="post" enctype="multipart/form-data"> <div id="uploads_files"> <input type="file" name="images[]" multiple accept="image/*"/> <button type="submit">Сохранить</button> </div> JS-скрипт добавления картинок (function(){ if(!window.File || !window.FileList || !window.FileReader) return console.log("Your browser does not support File API"); document.getElementById("uploads_files").addEventListener("change", function(event) { var clone = event.target.cloneNode(), files = event.target.files, output = document.getElementById("result"); clone.value=null; this.appendChild(clone); this.focus(); for(var i = 0; i < files.length; i++) { var file = files[i]; if(!file.type.match('image')) continue; var picReader = new FileReader(); picReader.addEventListener("load", function(event) { var picFile = event.target; var div = document.createElement("div"); div.className = 'preview'; div.innerHTML = "<button type='button' href='' class='del_img'>Удалить</button><img class='thumbnail' src='" + picFile.result + "'" + "title='" + picFile.name + "'/>"; output.insertBefore(div, null); }); picReader.readAsDataURL(file); } }); })(); Задача в том, чтобы сделать возможность удалять картинки пользователю. В JS я не силен, а знаний JQuery хватило на то, чтобы выдать такой скрипт $(document).on('click', '.del_img', function() { $(this).parents("div:first").remove(); }); Добавление и удаление происходят нормально. Но, только в браузере. Например, выбрал юзер 6 картинок. Потом посмотрел и 2 удалил. Визуально они удалились, но в контроллер передаются все равно 6 штук. Посоветуйте, как правильно сделать удаление. Спасибо |
На сервер все равно будут передаваться те картинки, которые находятся в
в <input type=file>.files И оттуда их не удалить. Надо вручную снова формировать список картинок, которые должны передаться, помещая их в FormData. И передавать в запросе не значения полей, а FormData. |
Даа, не думал, что все так сложно. Ну ладно, пойдем другим путем:)
Спасибо! |
Часовой пояс GMT +3, время: 21:46. |