【发布时间】:2016-09-02 08:57:34
【问题描述】:
我需要一个 javascript 代码,用于在每次输入值更改(即每次用户选择要上传的文件时)上传之前检查输入文件的大小。
到目前为止,我想出了这个:
var file = document.getElementById("myFile");
file.addEventListener('change', function() {
if (this.files[0].size > 2*1024*1024) {
alert('Max file size is 2 MB');
file.removeAttribute('value');
file.parentNode.replaceChild(file.cloneNode(true),file);
}
}
);
而 HTML 是:
<form action="?" method="post">
<input type="file" id="myFile" name="myFile" />
<input type="submit" value="upload" />
</form>
现在,如果我这样保留 Javascript 代码,它就根本不起作用。 但是如果我这样改变它
window.onload = function() {
// Same code above
}
它有效,但仅适用于用户选择的第一个文件。
如何更改它以使其每次用户选择文件时都可以工作? (如果可能没有 jQuery)
【问题讨论】:
-
您可以尝试将其更改为
document.onload吗? -
问题是,当文件太大时,你替换元素 - 它不再有事件监听器
-
@DustinToothless — 是什么让您认为这会有所帮助?
-
@DustinToothless 不工作。对于第一个文件选择都不是
-
只需设置
file.value='';而不是你正在做的事情
标签: javascript forms file-upload input