同じファイルを選択しても HTML 入力ファイル選択イベントが発生しない 質問する

同じファイルを選択しても HTML 入力ファイル選択イベントが発生しない 質問する

ユーザーが HTMLinputfile要素タイプに対して行ったすべてのファイル選択を検出する可能性はありますか?

これは以前にも何度も質問されましたが、onchangeユーザーが同じファイルを再度選択した場合、通常提案されるイベントは発生しません。

ベストアンサー1

各イベントで の値を設定します。これにより、 の値がリセットされinput、同じパスが選択されていてもイベントがトリガーされます。nullonclickinputonchange

var input = document.getElementsByTagName('input')[0];

input.onclick = function () {
  this.value = null;
};
  
input.onchange = function () {
  console.log(this.value);
};
<input type="file" value="C:\fakepath">

注: ファイルの先頭に「C:\fakepath」が付いているのは正常です。これは、JavaScript がファイルの絶対パスを認識できないようにするセキュリティ機能です。ブラウザは内部的にそれを認識しています。

おすすめ記事