验证上传图片大小时怎么会有延时呢?

ping_2009 2009-11-01 04:19:14
提交表单时,进行下列验证:
//验证图片
if(!validatePicture("XXXX")){return false;}//确认是否提交
if(confirm("确认提交?"))
{
return true;
}
else
{
return false;
}

function validatePicture(objId)
{
var boolResult = true;
var myimg = new Image();
myimg.src = document.getElementById(objId).value;
myimg.onreadystatechange = function ()
{
if (myimg.readyState == "complete")
{
var fs = myimg.fileSize;
if(fs > 51200)
{
alert("图片太大!");
boolResult = false;
}
}
}
}
return boolResult;
}

上面代码运行时,如果图片太大的话,会出现两个提示框,一个询问是否提交,一个显示图片太大,而且貌似是图片太大这个是后出来的。
请问高手这里该怎么处理才能让它在显示出图片太大后才询问是否提交呢?
...全文
72 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
HenJiong 2009-11-01
  • 打赏
  • 举报
回复
if (myimg.readyState == "complete")
{
var fs = myimg.fileSize;
if(fs > 51200)
{
alert("图片太大!");
boolResult = false;
}
if(confirm("确认提交?"))
{
return true;
}
else
{
return false;
}

}

onreadystatechange 是异步获取结果
if(!validatePicture("XXXX")){return false;} 你看一下validatePicture("XXXX")返回什么就知道了
ping_2009 2009-11-01
  • 打赏
  • 举报
回复
我是先让它去调用的验证大小,然后才提示是否提交啊?是不是我哪里逻辑错了?
chen_ya_ping 2009-11-01
  • 打赏
  • 举报
回复
对啊,按照你的程序出现提示框两个是对的啊 ,你想,一开始出现了提示框问你要不要提交,你点击了提交,然后判断图片的大小,超过了范围就提示图片太大。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧