检查上传文件大小,如果大于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>firefoxchromeie8
超于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>firefoxchromeie8
1楼做法的确可行,
我试了下<button class="btn" onclick="dosubmit();return false;">提交</button>也是可行的。
但是不是很明白,为什么要return false。这个按钮没有其它操作啊,不知道为什么要加这个防止默认事件。
而默认事件为什么是提交表单。
1楼做法的确可行,
我试了下<button class="btn" onclick="dosubmit();return false;">提交</button>也是可行的。
但是不是很明白,为什么要return false。这个按钮没有其它操作啊,不知道为什么要加这个防止默认事件。
而默认事件为什么是提交表单。
button标签的默认type是type='submit'
基本知识了
1楼做法的确可行,
我试了下<button class="btn" onclick="dosubmit();return false;">提交</button>也是可行的。
但是不是很明白,为什么要return false。这个按钮没有其它操作啊,不知道为什么要加这个防止默认事件。
而默认事件为什么是提交表单。
button标签的默认type是type='submit'
基本知识了
好的,原来如此。非常感谢