2017-07-20 36 views
0

私は1ページに2つのフォームがある環境を持っています。そのうちの1つはAJAX要求を介してロードされ、もう1つはページのロード時に存在します。DropzoneがAJAXにロードされない

今、両方ともdropzoneを持っています。フォームとドロップインの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要求は、私はそれを指定しているにもかかわらず表示されません後に作成される他のドロップゾーン。

何か助けていただければ幸いです。ありがとう。

答えて

0

だから、私がやったことは、私がドロップゾーンを初期化する方法を変えたことです。これに代えて

は:

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

は、私が使用:

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

そして、私はjQueryの関数の最初の行としてDropzone.autoDiscover = false;を使用しました。

これは動作するようです。

関連する問題