【发布时间】:2016-08-17 23:03:44
【问题描述】:
function getMeta() {
var img = new Image();
var verif = true;
img.onload = function() {
if (this.width != 468 && this.height != 60) {
alert('error : only these image sizes are accepted : 468x60');
return false;
} else
alert('loaded successfully');
};
img.onerror = function() {
alert('error : this is not a valid image');
return false;
};
img.src = document.getElementById('t1').value;
return true;
}
<form action="https://www.paypal.com/cgi-bin/webscr"
method="post" target="_blank" id="form1"
onsubmit="return getMeta();">
函数 img.onload 不会返回任何内容 我需要一个 true 或 false 的返回值。
我想在表单的 onsubmit 中使用返回值。 谁能帮帮我?
【问题讨论】:
-
.onload是异步的,这意味着它会在将来的某个时间被系统调用,您从它返回的任何值都只会返回到系统中,而不是返回到您自己的代码中。 -
我尝试使用回调,但它对我不起作用.. 但是,我只需要我的代码的解决方案。如果你能帮助我,我会很高兴的。谢谢
-
@Oriol - 这不是该帖子的直接副本,因为该帖子没有描述如何解决这个特定问题。是的,它描述了为什么不能通过回调或承诺从异步回调返回结果,但它没有解释如何将解决方案应用于异步表单提交。我最初将其标记为一个副本,然后在进一步的评论表单中,OP 意识到其他答案并没有解释如何解决这个问题,所以我重新打开它。你应该重新打开。其他帖子不会为此 OP 提供完整的答案。
-
@jfriend00 这正是我想说的,谢谢
-
请不要将此标记为How do I return the response from an asynchronous call 的副本。它已经被标记了两次,然后每次都重新打开,因为该帖子没有描述如何在此处实际解决异步表单提交问题。它确实有助于理解为什么会出现问题,但不能解决这个问题的实际解决方案。
标签: javascript function return return-value onload-event