Показать сообщение отдельно
  #1 (permalink)  
Старый 27.12.2020, 08:22
Аспирант
Отправить личное сообщение для LingVist Посмотреть профиль Найти все сообщения от LingVist
 
Регистрация: 21.09.2010
Сообщений: 39

Как удалить динамический элемент?
Есть форма для динамического добавления картинок

<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 штук. Посоветуйте, как правильно сделать удаление.

Спасибо
Ответить с цитированием