-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcustom-file-input.js
More file actions
28 lines (24 loc) · 896 Bytes
/
custom-file-input.js
File metadata and controls
28 lines (24 loc) · 896 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
hello@mushfiqweb.com, https://mushfiqweb.com
*/
'use strict';
(function (document, window, index) {
var inputs = document.querySelectorAll('.inputfile');
Array.prototype.forEach.call(inputs, (input) => {
var label = input.nextElementSibling, labelVal = label.innerHTML;
input.addEventListener('change', (e) => {
var fileName = '';
if (this.files && this.files.length > 1)
fileName = (this.getAttribute('data-multiple-caption') || '').replace('{count}', this.files.length);
else
fileName = e.target.value.split('\\').pop();
if (fileName)
label.querySelector('span').innerHTML = fileName;
else
label.innerHTML = labelVal;
});
// Firefox bug fix
input.addEventListener('focus', function () { input.classList.add('has-focus'); });
input.addEventListener('blur', function () { input.classList.remove('has-focus'); });
});
}(document, window, 0));