前提・実現したいこと
お問い合わせフォームの複数画像のファイル ドラッグ&ドロップを実装したい
以下の記事を参考に制作しています
ドラッグ&ドロップでファイルアップロードする
発生している問題・エラーメッセージ
1つずつ画像をファイル ドラッグ&ドロップした際にはそれぞれのinputタグに値が入るが複数同時にドラッグ&ドロップした際にうまく扱えない
該当のソースコード
HTML
1<div id="drop-zone" style="border: 1px solid; padding: 30px; background: rgb(255, 255, 255);"> 2 <p>ファイルをドラッグ&ドロップもしくは</p> 3 <input type="file" name="file-input" id="file-input"> 4 5 <input type="file" name="file-input-two" id="file-input-two"> 6</div>
js
1var dropZone = document.getElementById("drop-zone"); 2var fileInput = document.getElementById("file-input"); 3var fileInputTwo = document.getElementById("file-input-two"); 4 5dropZone.addEventListener( 6 "dragover", 7 function (e) { 8 e.stopPropagation(); 9 e.preventDefault(); 10 this.style.background = "#e1e7f0"; 11 }, 12 false 13); 14 15dropZone.addEventListener( 16 "dragleave", 17 function (e) { 18 e.stopPropagation(); 19 e.preventDefault(); 20 this.style.background = "#ffffff"; 21 }, 22 false 23); 24 25//console.log(fileInput.length); 26dropZone.addEventListener( 27 "drop", 28 function (e) { 29 e.stopPropagation(); 30 e.preventDefault(); 31 this.style.background = "#ffffff"; 32 var files = e.dataTransfer.files; //ドロップしたファイルを取得 33 if (files.length > 1) { 34 //2個以上一度にドロップされた時 35 console.log("2個以上"); 36 console.log(files[0]); 37 console.log("inputする内容"); 38 console.log(files); 39 fileInput.files = files[0]; 40 } else if (fileInput.files.length == 0) { 41 //1個目の画像 42 console.log("1個目"); 43 console.log(files); 44 fileInput.files = files; 45 } else if (fileInput.files.length == 1) { 46 //2個目の画像 47 console.log("2個目"); 48 fileInputTwo.files = files; 49 console.log(fileInputTwo.files); 50 } 51 }, 52 false 53); 54
試したこと
複数同時にドラッグ&ドロップするとJavaScriptのFileList
に値が入るのでそこを加工したいがどの様にすれば良いわからない状況です
補足情報(FW/ツールのバージョンなど)
WordPres
MW WP FORM
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/10 05:54
2020/11/10 05:58