Dropzone未在AJAX

时间:2017-07-20 15:25:14

标签: javascript jquery ajax laravel-5 dropzone.js

我有一个环境,我在一个页面上有两个表单。其中一个是通过AJAX请求加载的,另一个是在页面加载时存在的。

现在,他们都有一个掉落区。请注意,表单和dropzones的ID不同,因此没有ID冲突。

如果重要的话,我正在使用Laravel 5.4。

test.blade.php     

<form id="show-edit-form" name="show-edit-form" class="form-horizontal" role="form" method="post"
      enctype="multipart/form-data" action="{{url('editLocation')}}">
    {{csrf_field()}}
    <input type="hidden" id="location_id" name="location_id" value="{{$location->id}}">


    <div class="form-group">
        <div class="col-xs-12">
            <div class="dropzone" id="editfiles"></div>
        </div>
    </div>

    <div class="clearfix form-actions">
        <div class="col-md-3 col-md-9">
            <button class="btn btn-success btn-edit-submit" type="submit" id="edit-submit-all">
                <i class="ace-icon fa fa-save fa-fw bigger-110"></i> Save changes
            </button>
        </div>
    </div>

</form>

<div class="form-test">

</div>

的javascript

jQuery(function ($) {

    Dropzone.options.editfiles = {
        url: 'laravel route',
        ...
    };

    $(document).on('click', '.btn-test', function () {
        $.ajax({
            url: "my url",
            success: function(data) {
                $('.form-test').html(data); // Form returned here
                Dropzone.options.files = {
                    url: 'another laravel route',
                    ...
                };
            }
        });        
    )};

)};

问题是,即使我已经指定了AJAX请求之后创建的另一个dropzone也没有呈现。

一些帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

所以,我所做的是改变了我初始化dropzones的方式。

而不是:

Dropzone.options.editfiles = {
    url: 'laravel route',
    ...
};

我用过:

var first = new Dropzone("#editfiles", {
    url: 'laravel route',
    ...
};

我使用Dropzone.autoDiscover = false;作为jQuery函数的第一行。

这似乎有效。