2つの入力テキストを含む標準フォームに含まれるファイルをアップロードするためのdropzoneフォームがあります。この場合、送信ボタン(id = submit-all)の動作は(ボタンがクリックされると、すべてのファイルをアップロードするためには)次のJavaScriptの部分に支配:ボタンをクリックするとdropzone:ファイルが選択されていない場合、送信ボタンは機能しません
Dropzone.options.myDropzone = {
// Prevents Dropzone from uploading dropped files immediately
autoProcessQueue: false,
uploadMultiple: true,
init: function() {
var submitButton = document.querySelector("#submit-all")
myDropzone = this; // closure
submitButton.addEventListener("click", function() {
myDropzone.processQueue(); // Tell Dropzone to process all queued files.
});
this.on("queuecomplete", function (file) {
if (this.getUploadingFiles().length === 0 && this.getQueuedFiles().length === 0) {
location.href = 'write.php?final=y';
}
});
}
};
、すべてのファイルがアップロードされ、処理された予想通り、その後、訪問者がにリダイレクトされていますページ 'write.php?final = y'(おめでとうメッセージ)。 ファイルが選択されていない場合、このスクリプトは機能しません。ボタンをクリックしても効果はありません。
誰でもこの問題を解決できますか? あなたの返信には事前に多くの感謝!ファイルがないので、手動でもイベントを放出するための方法、単純な使用
this.emit("signalname");
とイベントの一覧があり
Dropzone.options.myDropzone = {
// Prevents Dropzone from uploading dropped files immediately
autoProcessQueue: false,
uploadMultiple: true,
init: function() {
var submitButton = document.querySelector("#submit-all");
myDropzone = this; // closure
submitButton.addEventListener("click", function() {
if (myDropzone.getUploadingFiles().length === 0 && myDropzone.getQueuedFiles().length === 0) {
location.href = 'write.php?final=y';
}
else {
myDropzone.processQueue();
}
});
}
};
dropzoneにファイルがない場合に、なぜ送信ボタンを使用したいのですか? –
@Martin:送信ボタンはいくつかのトリガを引き起こすため、いくつか選択されたときに画像をアップロードして処理しますが、確認メールを送信して最後に別のページにリダイレクトします。 – Romain
@martin:フォームに2つの入力テキストタグも含まれていることを忘れていた – Romain