检验上传文件大小遇到的诡异问题
检查上传文件大小,如果大于1M时不让其提交。代码在IE8下没问题,但在firefox或者chrome下,
超于1M的文件仍然提交了。怀疑是不是firefox不支持return flase;但是小弟在校验其他的表单提交时return flase都是可以的。求大神指导。
对document.myform.submit()处打断点,并没有发现被调用。不知道到底哪里触发提交表单的。
<script>
var fileflag = true;
var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
function dosubmit(){
if(fileflag==false){
alert("文件不能大于1M");
return false;
}
document.myform.submit();
}
function fileonChange(target){
var fileSize = 0;
var k = target.id.substring(8);
if (isIE && !target.files){
var filePath = target.value;
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
var file = fileSystem.GetFile(filePath);
fileSize = file.Size;
}else{
fileSize = target.files[0].size;
}
var size = fileSize / 1024;
if(size>10){
alert("文件不能大于1M");
fileflag = false;
}else{
fileflag = true;
}
}
</script>
<s:form name="myform" id="myform" action="addOrder.action" enctype="multipart/form-data" target="ajaxUpload">
<input id="addfile" type="file" name="file" onchange="fileonChange(this);">
<button class="btn" onclick="dosubmit();">提交</button>
</s:form>