我试图阻止用户选择超过50kB的文件。如果用户选择了一个文件,则js函数将进行验证,并将上载函数的值设置为0。但是,当函数完成时,值的更改不会反映在HTML元素上。
我已经浏览过很多Stack Overflow帖子,其中大多数人说将上传文件的值设置为“ null”或“ 0”,这似乎对我不起作用。
<p>Hello World</p>
<button>Change color</button>
<br><br>
<input type="file" id="myFile" />
</div>
第1-6行/file.html
var banner = $("#banner-message")
var button = $("button")
// handle click and add class
button.on("click", function(){
banner.addClass("alt")
})
$('#myFile').bind('change', function() {
b = this.value;
a = this.files[0].size/1024;
fileName = this.files[0];
//this.files[0].size gets the size of your file.
//alert(a);
alert(b);
if(a > 50){
alert(fileName.name);
alert("Greater than 50Kb");
//alert(c);
b = null;
alert(b);
} else {
alert("Lesser than 50Kb");
}
alert(b);
});
第10-41行/validate.js
我想发生的是,当函数运行并进行验证时,应该删除HTML元素的值,并且应该向我显示一个没有值的新HTML元素,如果没有,则显示“未选择文件”满足条件。请帮忙,我们将不胜感激。
答案 0 :(得分:1)
似乎您只是将变量b
的值从this.value
更改为null
。尝试使用think {123}建议的this.value = null
。