我在这里看到了很多带上传文件的解决方案,但似乎对我的情况不起作用。以下是我尝试实现的方案:
文件大小验证很好,问题是,不知怎的,我无法阻止af:inputFile在退出javascript验证后上传文件。
请告诉我如何防止它从javascript / jQuery上传。
这是我的代码:
JS
$(document).ready(function () {
$('.UploadFile input').on("change", function (e) {
if (this.files[0] != null) {
var fileSize = this.files[0].size;
if (fileSize > 100) {
alert("File too large!");
e.preventDefault();
return;
}
else {
alert("File ok");
}
}
});
});
af:inputFile
<af:inputFile label="Upload" id="if1" autoSubmit="true"
styleClass="UploadFile" immediate="true"
valueChangeListener="#{fileBean.attachFile}">
</af:inputFile>
谢谢,
凯文
答案 0 :(得分:1)
如果条件不匹配,我建议重置input type=file
:
$('.UploadFile input').on("change", function (e) {
if (this.files[0] != null) {
var fileSize = this.files[0].size;
if (fileSize > 100) {
alert("File too large!");
var control=$("#"+$(this).attr('id'));//get the id
control.replaceWith(control = control.clone().val(''));//replace with clone
return;
}
else {
alert("File ok");
}
}
});
另请注意
的文件this.files[0].size
返回文件大小 的bytes
即可。因此,根据您的验证,您不允许上传大小超过100 bytes