После того, как изображение загружено через Dropzone, перейдите в родительский div - PullRequest
1 голос
/ 28 сентября 2019

Я запутался, я не знаю, как получить доступ к родительскому div.Позвольте мне резюмировать это!

На самом деле у меня есть несколько дропзон, которые я инициализирую, используя класс .abc, над каждой дропзоной есть вход, в который я помещаю имя изображения для загрузки.вот мой код

  $('.kt_dropzone_1').dropzone({
           url: base_url + 'product/uploadPic', // Set the url for your upload script location
        paramName: "file", // The name that will be used to transfer the 

        maxFiles: 1,
        maxFilesize: 5, // MB
        addRemoveLinks: true,
        accept: function (file, done) {

            done();


        },
        success: function (file, response) {


            alert($(this).attr('data-abc')); // undefined
            alert($(this).parent().parent.html()); // undefined                

        },

    });

здесь HTML это в цикле, поэтому считаю его кратным

<input type="hidden" class="img-upload" name="old" value=""/>                       
<div class="col-md-12 pull-left">
    <div class="dropzone dropzone-default kt_dropzone_1">
        <div class="dropzone-msg dz-message needsclick">

        <h3 class="dropzone-msg-title">Drop files here or click to upload.</h3>

        <span class="dropzone-msg-desc">This is just a demo 
            dropzone. Selected files are <strong>not</strong> 
            actually uploaded.</span>
        </div>
    </div>
</div>

я пытаюсь использовать пользовательский атрибут для передачи динамического идентификатора ввода по-прежнему не работает, я не знаю какполучить текущий объект div для доступа к родительскому html или input или div

1 Ответ

0 голосов
/ 28 сентября 2019

Я мог бы предложить вам небольшие изменения для этого.Переместите тип ввода, скрытый внутри

и чуть выше div-зоны dropzone.

Теперь, чтобы указать правильную dropzone, попробуйте следующий обновленный код.

$('.kt_dropzone_1').dropzone({
    var this_dropzone = $(this);
    url: base_url + 'product/uploadPic', // Set the url for your upload script location
    paramName: "file", // The name that will be used to transfer the 

    maxFiles: 1,
    maxFilesize: 5, // MB
    addRemoveLinks: true,
    accept: function (file, done) {
        done();
    },
    success: function (file, response) {
        this_dropzone.closest("div").find(".img-upload").attr('data-abe', 'value to be set');
        this_dropzone.closest("div").find(".img-upload").val('you can set anyvalue here');
    },
});

Thisдолжен работать как хочешь!

...