このコードがあるとしましょう:
<form action='' method='POST' enctype='multipart/form-data'>
<input type='file' name='userFile'><br>
<input type='submit' name='upload_btn' value='upload'>
</form>
これはこれになります:
ユーザーが[参照...]ボタンをクリックすると、ファイル検索ダイアログボックスが開きます。
ユーザーは、ファイルをダブルクリックするか、「開く」ボタンをクリックしてファイルを選択します。
ファイルが選択された後に通知を受けるために使用できるJavascriptイベントはありますか?
変更イベントを聴きます。
input.onchange = function(e) {
..
};
ファイルをリロードする必要がある場合、入力の値を消去できます。次回ファイルを追加すると、「変更時」イベントがトリガーされます。
document.getElementById('my_input').value = null;
// ^ that just erase the file path but do the trick
jQueryの方法:
$('input[name=myInputName]').change(function(ev) {
// your code
});
それは私が純粋なJSでそれをした方法です:
var files = document.getElementById('filePoster');
var submit = document.getElementById('submitFiles');
var warning = document.getElementById('warning');
files.addEventListener("change", function () {
if (files.files.length > 10) {
submit.disabled = true;
warning.classList += "warn"
return;
}
submit.disabled = false;
});
#warning {
text-align: center;
}
#warning.warn {
color: red;
transform: scale(1.5);
transition: 1s all;
}
<section id="shortcode-5" class="shortcode-5 pb-50">
<p id="warning">Please do not upload more than 10 images at once.</p>
<form class="imagePoster" enctype="multipart/form-data" action="/gallery/imagePoster" method="post">
<div class="input-group">
<input id="filePoster" type="file" class="form-control" name="photo" required="required" multiple="multiple" />
<button id="submitFiles" class="btn btn-primary" type="submit" name="button">Submit</button>
</div>
</form>
</section>
キャンセルをクリックしても、Changeイベントが呼び出されます。