質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

ドラッグ&ドロップ

コンピューターのGUIにおいて、バーチャルなものを「つかむ」ことによって選択し、別の場所や他のバーチャルなものの上に動かす行為、またはその行為に対応していることを指す。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1483閲覧

お問い合わせフォームのドラッグ&ドロップエリアに複数画像同時にした時にひとつずつ値を入れたい

shimon11

総合スコア49

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

ドラッグ&ドロップ

コンピューターのGUIにおいて、バーチャルなものを「つかむ」ことによって選択し、別の場所や他のバーチャルなものの上に動かす行為、またはその行為に対応していることを指す。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/11/10 05:02

前提・実現したいこと

お問い合わせフォームの複数画像のファイル ドラッグ&ドロップを実装したい

以下の記事を参考に制作しています
ドラッグ&ドロップでファイルアップロードする

発生している問題・エラーメッセージ

1つずつ画像をファイル ドラッグ&ドロップした際にはそれぞれのinputタグに値が入るが複数同時にドラッグ&ドロップした際にうまく扱えない

該当のソースコード

サンプルの動き CodePen

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

type=fileを複数持つ意味があまりないので
multipleで処理すればよいような気がします。

投稿2020/11/10 05:29

yambejp

総合スコア114784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shimon11

2020/11/10 05:54

回答ありがとうございます MW WP FORMを使っておりmultipleが使用できない状況でした。 可能であればtype=fileを複数持つ形にしたいのですがmultipleを使える様にした方が見通は良さそうでしょうか?
yambejp

2020/11/10 05:58

今のままではドラッグアンドドロップがinputの振り分けをして くれるわけではないので処理が煩雑になるとおもいますよ type=fileが複数なら1つ1つドラッグアンドドロップするのが妥当かと
guest

0

ここよりヤフー知恵袋に聞け

投稿2020/11/10 05:10

takui_aka

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問