【发布时间】:2019-02-22 07:12:39
【问题描述】:
我正在尝试为文件选择器自定义“选择文件”按钮。为了表明选择了文件,我希望将“选择文件”文本更改为文件名。这是我尝试过的:
var inputs = document.querySelectorAll( '.inputfile' );
Array.prototype.forEach.call( inputs, function( input )
{
var label = input.nextElementSibling,
labelVal = label.innerHTML;
input.addEventListener( 'change', function( 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;
});
});
但它不起作用,选择文件后没有任何更改。
【问题讨论】:
-
你不需要这样做,它是默认完成的。
-
出于安全原因,文件输入元素没有太多可更改的功能。您将需要模仿外观并使用事件将事件传输到真实(隐藏)文件输入。
标签: javascript image file file-upload image-uploading