我有一个环境,我在一个页面上有两个表单。其中一个是通过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也没有呈现。
一些帮助将不胜感激。感谢。
答案 0 :(得分:0)
所以,我所做的是改变了我初始化dropzones的方式。
而不是:
Dropzone.options.editfiles = {
url: 'laravel route',
...
};
我用过:
var first = new Dropzone("#editfiles", {
url: 'laravel route',
...
};
我使用Dropzone.autoDiscover = false;
作为jQuery函数的第一行。
这似乎有效。