2013-09-25 22 views
7

Giúp đỡ!Tại sao biểu mẫu javascript dropzone của tôi không hoạt động?

Tôi đang xây dựng giao diện người dùng của trang web và tôi đang sử dụng dropzone.js để tải lên hình ảnh. Bây giờ tôi đã bao gồm dropzone.min.js và dropzone.css trong đầu và tôi gán lớp dropzone cho thẻ mà tôi muốn chuyển đổi. Mặc dù trường biểu mẫu này không được tạo thành trường dropzone. Việc bỏ hình ảnh trên các kết quả của trường trong trình duyệt chỉ hiển thị hình ảnh giống như nó thường làm. Tôi sử dụng nhiều plugin jquery hoặc javascript khác nhau để có thể có điều gì đó gây ra xung đột?

Bảng điều khiển Firebug cho biết: Lỗi bắt buộc: Không có URL nào được cung cấp.

Nếu các bạn có thể giúp tôi về điều này, điều đó thật tuyệt vời! Cảm ơn trước

Đây là mã nhúng HTML hoàn hảo

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 

    <!-- Dropzone --> 
    <link rel="stylesheet" media="screen" type="text/css" href="css/dropzone.css" /> 
    <script type="text/javascript" src="dropzone.min.js"></script> 

    <!-- Color picker --> 
    <link rel="stylesheet" media="screen" type="text/css" href="css/colorpicker.css" /> 
    <script type="text/javascript" src="js/colorpicker.js"></script> 
    <script type="text/javascript" src="js/eye.js"></script> 
    <script type="text/javascript" src="js/utils.js"></script> 
    <script type="text/javascript" src="js/layout.js?ver=1.0.2"></script> 

    <!-- CHOSEN Custom fields --> 
    <link rel="stylesheet" type="text/css" href="css/chosen.css" /> 

    <!-- Base includes --> 
    <link href="style.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script> 

    <!-- Pop up window --> 
    <link rel="stylesheet" type="text/css" href="css/default.css" /> 
    <link rel="stylesheet" type="text/css" href="css/component.css" /> 
    <script type="text/javascript" src="js/editstyle.js"></script> 
    <script type="text/javascript" src="js/jquery.sortable.min.js"></script> 

    <title>AppXelerator</title> 
</head> 
<body> 
<div class="container" id="fullscreen"> 
    <p> 
     <img class="logo" src="images/logo.png" alt="AppXelerator logo"/> 
    </p>  
    <div class="mainnavwrap"> 
     <ul class="mainnav whiteblock"> 
      <li><a href="#"><img src="images/menu_apps.png" alt="apps icon"/> Apps</a></li> 
      <li><a href="#"><img src="images/menu_crawler.png" alt="crawler icon"/>Crawler</a></li> 
      <li class="active"><a href="#"><img src="images/menu_builder.png" alt="builder icon"/>Builder</a></li> 
      <li><a href="#"><img src="images/menu_publish.png" alt="publish icon"/>Publish</a></li> 
      <li><a href="#"><img src="images/menu_finish.png" alt="finish icon"/>Finish</a></li> 
     </ul> 
    </div>  

    <div class="pageswrap"> 
     <h2>Pages</h2>  
     <button class="md-trigger bluebutton" data-modal="modal-9">+ Add new page</button> 

     <ul class="pages whiteblock"> 
      <li class="disabled">Home (locked)</li> 
      <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Shop</li> 
      <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Saved products</li> 
      <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>About us</li> 
      <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Store locator</li> 
     </ul> 
    </div> 

    <div class="content whiteblock"> 
     <div class="contenthead"> 
      <div class="page_details"> 
       <!--<a href="#"><img src="images/menu_apps.png"></a>--> 
       <h2><a href="#">Home</a></h2> 
       <button class="md-close"><img src="images/icon_remove.png"/>Remove page</button> 
      </div> 
      <ul> 
       <li class="active"><a href="#">Content</a></li> 
       <li><a href="#">Design</a></li> 
      </ul> 
     </div> 
     <div class="contentforms"> 

      <h4>Header</h4> 
      <form> 
       <div class="colorfield"> 
        <label class="fieldlabel" for="AccessCode"> Background color:</label> 
        <input id="colorpickerField1" class="input_color" value="#"> 
       </div> 

       <div class="colorfield"> 
        <label class="fieldlabel" for="AccessCode"> Button color:</label> 
        <input id="colorpickerField2" class="input_color" value="#"/> 
       </div> 

       <div class="colorfield"> 
        <label class="fieldlabel" for="AccessCode"> Lettertype:</label> 
        <select class="chosen-select input_text" tabindex="1" style="width:360px;" data-placeholder="Select font"> 
        <option value=""></option> 
        <option value="Arial" class="font-arial">Arial</option> 
         <option value="Arial black" class="font-arial-black">Arial Black</option> 
        <option value="Comic sans" class="font-comicsans">Comic sans</option> 
        <option value="Courier new" class="font-courier">Courier new</option> 
        <option value="Georgia" class="font-georgia">Georgia</option> 
        <option value="Helvetica" class="font-helvetica">Helvetica</option> 
        <option value="Impact" class="font-impact">Impact</option> 
        <option value="Lucida" class="font-lucida">Lucida</option> 
        <option value="Palatino" class="font-palatino">Palatino</option>  
        <option value="Tahoma" class="font-tahoma">Tahoma</option> 
        <option value="Times new roman" class="font-times">Times New Roman</option> 
        <option value="Trebuchet" class="font-helvetica">Trebuchet</option>   
        <option value="Verdana" class="font-verdana">Verdana</option> 
        <option value="MS Sans serif" class="font-mssansserif">MS Sans serif</option> 
        </select> 
       </div> 

       <div class="colorfield"> 
        <label class="fieldlabel" for="AccessCode"> Header logo:</label>  
        <input class="input_image" value="Select image"/> 
       </div> 

       <!-- 
       <div class="colorfield"> 
        <label class="fieldlabel" for="AccessCode"> Search category:</label>  
        <input class="input_search" value="Search..."/> 
       </div> 
       --> 
      </form> 

      <h4>Menu</h4> 

      <form class="dropzone"></form> 
     </div> 
    </div> 

    <div id="mockup" class="smartphonemockup"> 
     <img class="togglepreview" src="images/toggle_preview.png"/> 
     <img src="images/iphone_preview.png"/> 
     <button class="md-trigger bluebutton_radius4 phonepreview_positionfix" data-modal="modal-10">Set up phone view</button> 
    </div> 

    <div class="md-modal md-effect-9" id="modal-9"> 
     <div class="md-content"> 
      <h2>Add new page</h2> 
      <div> 
       <p>Every page has it's own base functionality, please select the kind of page that you want to add to your app. Select a page and start customizing the design.</p><br/> 
       <a href="#" class="bluebutton_radius4_addpage"><img class="page_icon" src="images/page_icon_shop.png" alt="page icon"/>Shop pagina</a> 
       <a href="#" class="bluebutton_radius4_addpage"><img class="page_icon" src="images/page_icon_location.png" alt="page icon"/>Store locator</a> 
       <a href="#" class="bluebutton_radius4_addpage"><img class="page_icon" src="images/page_icon_facebook.png" alt="page icon"/>Facebook</a> 
       <a href="#" class="bluebutton_radius4_addpage"><img class="page_icon" src="images/page_icon_contact.png" alt="page icon"/>Contact page</a> 
       <a href="#" class="bluebutton_radius4_addpage"><img class="page_icon" src="images/page_icon_saved_products.png" alt="page icon"/>Saved products</a> 
       <a href="#" class="bluebutton_radius4_addpage"><img class="page_icon" src="images/page_icon_info.png" alt="page icon"/>About us</a> 
       <button class="md-close">Close</button> 
      </div> 
     </div> 
    </div> 

    <div class="md-modal md-effect-9" id="modal-10"> 
     <div class="md-content"> 
      <h2>Set up live phone view</h2> 
      <div> 
       <p>Besides the preview in the browser we offer you the ability to view your app live on your smartphone while building it. 
        Follow the instructions below to link up your smartphone to AppXelerator. </p><br/> 

       <p><b>1.</b> Connect your smartphone to the same network as your computer</p> 

       <p><b>2.</b> Download the AppXelerator app from AppStore for iOs devices or Google Play for Android.</p> 

       <p><b>3.</b> Log in to the app with your provided username and password.</p> 

       <p><b>4.</b> Enjoy your live app view!</p> 

       <button class="md-close">Close</button> 
      </div> 
     </div> 
    </div> 

</div> <!-- CONTAINER END --> 

<div class="md-overlay"></div> 



<!-- OVERLAY POPUP --> 
    <script src="js/classie.js"></script> 
    <script src="js/modalEffects.js"></script> 
    <script src="js/cssParser.js"></script> 

    <script type="text/javascript"> 
//Toggle smartphone view 
    $("#mockup").click(function(event){ 
     event.preventDefault(); 
     if ($(this).hasClass("isDown")) { 
      $("#mockup").animate({marginRight:"0px"}, 200);   
      $(this).removeClass("isDown"); 
     } else { 
      $("#mockup").animate({marginRight:"300px"}, 200); 
      $(this).addClass("isDown"); 
     } 
     return false; 
    }); 
    </script> 

    <script type="text/javascript"> 
//Drag and drop pages 
     $(function() { 
      $('.pages').sortable({ 
       items: ':not(.disabled)' 
      }); 
     }); 
    </script> 

    <script type="text/javascript"> 
//Toggle fullscreen browser mode 
    document.addEventListener("keydown", function(e) { 
    if (e.shiftKey && e.keyCode == 70) { 
     toggleFullScreen(); 
    } 
    }, false); 

    function toggleFullScreen() { 
     if (!document.fullscreenElement && // alternative standard method 
      !document.mozFullScreenElement && !document.webkitFullscreenElement) { // current working methods 
     if (document.documentElement.requestFullscreen) { 
      document.documentElement.requestFullscreen(); 
     } else if (document.documentElement.mozRequestFullScreen) { 
      document.documentElement.mozRequestFullScreen(); 
     } else if (document.documentElement.webkitRequestFullscreen) { 
      document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); 
     } 
     } else { 
     if (document.cancelFullScreen) { 
      document.cancelFullScreen(); 
     } else if (document.mozCancelFullScreen) { 
      document.mozCancelFullScreen(); 
     } else if (document.webkitCancelFullScreen) { 
      document.webkitCancelFullScreen(); 
     } 
     } 
    } 
    </script> 

    <script type="text/javascript"> 
//CHOSEN CUSTOM DROPDOWN  
     $(document).ready(function(){ 
     $(".chosen-select").chosen(); 
     }); 
    </script> 
    <script type="text/javascript" src="js/chosen.jquery.js"></script> 
    <script type="text/javascript" src="js/chosen.proto.js"></script> 



</body> 
</html> 
+0

thấy điều này [link] (http://stackoverflow.com/a/41541632/5137413) tôi tìm thấy giải pháp –

Trả lời

11

Thậm chí, tôi phải đối mặt với cùng một vấn đề. Sau một vài phút nghiên cứu, tôi thấy rằng chúng tôi cần chỉ định url cho các phần tử khi không sử dụng biểu mẫu. Nhưng trong trường hợp của bạn, bạn đã sử dụng thẻ biểu mẫu để triển khai dropzone, do đó, nó yêu cầu một hành động như ..

<form action="some_target_url" class="dropzone"></form> 

làm việc này cho tôi..thử điều này.

Tôi thấy điều này trên trang web của dropzone.js trong bảng tùy chọn (di chuyển xuống)

+0

Tuyệt vời, trên thực tế, đây là vấn đề! Thêm hành động = "#" vào thẻ biểu mẫu và tất cả đều hoạt động tốt. –

+0

có cách nào để thực hiện điều này mà không có thẻ hành động để nó không thực hiện cuộc gọi http không? Tôi đang cố gắng thực hiện cuộc gọi trong tệp javascript của mình, nhưng nếu có hành động thì nó sẽ thực hiện tổng số 2 cuộc gọi. Tôi đang làm trong tệp javascript của mình để tôi có thể lấy lại dữ liệu từ máy chủ tất cả trong một cuộc gọi – user3226932

+0

Làm cách nào để thêm url hành động Nếu tôi không muốn sử dụng biểu mẫu ?? – Aamir

1
<form action="files" class="dropzone"> 
    <div class="fallback"> 
     <input type="file" name="file" multiple /> 
    </div> 
</form> 
1

Cùng một vấn đề - giải pháp dễ dàng -> Tôi không nói rõ URL vùng thả trong cấu hình của mình.

 $("#dZUpload").dropzone({ 
      url: "my-upload-url", 
     }); 
1

<form class="dropzone" id="myDropzone" action="url.php"> trong mã HTML (hoặc thậm chí không chỉ định id) là tốt. Điều đó nói rằng:

Url có thể được quy định tại javascript trong tùy chọn - Cách làm việc đó:

1) nếu autodiscover được phép là true (mặc định) Dropzone.options.myDropzone = { url : "url.php",...
Với JS id của các hình thức phải được khai báo dưới hình thức: id="mydropzone" hoặC# my-dropzone
class="dropzone" là không đủ.
Lưu ý: autodiscover phải được khai báo ngay sau và trước khi dom sẵn sàng.

2) nếu Dropzone.autoDiscover = false:
var myDropzone = new Dropzone("#myDropzone", { url: "url.php",... // JS : Dropzone class
hoặc
$("#myDropzone").dropzone({ url: "url.php",... // JS : jquery style
Lưu ý: bạn có thể sử dụng tất nhiên id khác, mã sẽ Dropzone.options.myOtherId = ... , $ ("# myOtherId"). vùng thả ... vv

warning : jQuery document ready callback function and JQUERY 3 :
"Uncaught Error: No URL provided." can happen still happen in one condition (wich brought me here) :


Kịch bản 1:
tải vùng thả xuống.js và jQuery 2 trong autodiscover hãy true
sau đó, trong tài liệu jQuery sẵn sàng: Dropzone.options.myDropzone = {url: "url.php", ...
-> tất cả là tốt


Kịch bản 2:
Switching để jQuery 3 mà không cần bất kỳ sự thay đổi khác: "Uncaught Error: No URL provided."
-> không có gì làm việc

Nó có vẻ là vì cách mới jQuery xử lý doc sẵn sàng: https://jquery.com/upgrade-guide/3.0/#breaking-change-document-ready-handlers-are-now-asynchronous

Solution with jQuery 3 :
1) let autodiscover to true and put ALL code OUTSIDE jQuery doc ready
or
2) set autodiscover to false BEFORE doc ready and declare options (url among others) via Javascript IN doc ready

infos: https://github.com/enyo/dropzone/issues/1423

Các vấn đề liên quan